第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Golang 如何在 Go 中讀取輸入文件名

Golang 如何在 Go 中讀取輸入文件名

Go
慕標(biāo)琳琳 2021-12-07 16:42:26
我想input.txt在我的 go 程序?qū)nput.txt在我輸入 go run 命令時(shí)讀取文件的地方運(yùn)行我的 go 文件,即:go run goFile.go input.txt我不想input.txt輸入我的goFile.go代碼,因?yàn)槲业?go 文件應(yīng)該在任何輸入名稱上運(yùn)行,而不僅僅是input.txt.我嘗試ioutil.ReadAll(os.Stdin)但我需要將我的命令更改為go run goFile.go < input.txt我只用包fmt,os,bufio和io/ioutil。是否可以在沒(méi)有任何其他軟件包的情況下做到這一點(diǎn)?
查看完整描述

3 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

請(qǐng)查看io/ioutil您已經(jīng)在使用的軟件包文檔。


它有一個(gè)專門(mén)用于此的功能: ReadFile()


func ReadFile(filename string) ([]byte, error)

用法示例:


func main() {

    // First element in os.Args is always the program name,

    // So we need at least 2 arguments to have a file name argument.

    if len(os.Args) < 2 {

        fmt.Println("Missing parameter, provide file name!")

        return

    }

    data, err := ioutil.ReadFile(os.Args[1])

    if err != nil {

        fmt.Println("Can't read file:", os.Args[1])

        panic(err)

    }

    // data is the file content, you can use it

    fmt.Println("File content is:")

    fmt.Println(string(data))

}


查看完整回答
反對(duì) 回復(fù) 2021-12-07
?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

首先檢查提供的參數(shù)。如果第一個(gè)參數(shù)滿足輸入文件的條件,則使用該ioutil.ReadFile方法,提供參數(shù)os.Args結(jié)果。


package main


import (

    "fmt"

    "os"

    "io/ioutil"

)


func main() {

    if len(os.Args) < 1 {

        fmt.Println("Usage : " + os.Args[0] + " file name")

        os.Exit(1)

    }


    file, err := ioutil.ReadFile(os.Args[1])

    if err != nil {

        fmt.Println("Cannot read the file")

        os.Exit(1)

    }

    // do something with the file

    fmt.Print(string(file))

}

另一種可能性是使用:


f, err := os.Open(os.Args[0])

但為此,您需要提供要讀取的字節(jié)長(zhǎng)度:


b := make([]byte, 5) // 5 is the length

n, err := f.Read(b)

fmt.Printf("%d bytes: %s\n", n, string(b))


查看完整回答
反對(duì) 回復(fù) 2021-12-07
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超6個(gè)贊

為了通過(guò)輸入?yún)?shù)(例如 abc.txt)從命令行運(yùn)行 .go 文件。我們主要需要使用 os、io/ioutil、fmt 包。另外為了讀取命令行參數(shù),我們使用 os.Args這里是示例代碼


package main

 import (

  "fmt"

  "os"

  "io/ioutil"

)

func main()  {

fmt.Println(" Hi guys  ('-') ")

input_files := os.Args[1:]

//input_files2 := os.Args[0];

//fmt.Println("if2 : ",input_files2)

if len(input_files) < 1{

fmt.Println("Not detected files.")

}else{

fmt.Println("File_name is : ",input_files[0])

content, err := ioutil.ReadFile(input_files[0])

if err != nil {

fmt.Println("Can't read file :", input_files[0],"Error : ",err)

}else {

fmt.Println("Output file content is(like string type) : \n",string(content))//string Output

fmt.Println("Output file content is(like byte type) : \n",content)//bytes Output

}

}

}

Args 保存命令行參數(shù),包括作為 Args[0] 的命令。如果 Args 字段為空或?yàn)榱悖瑒t Run 使用 {Path}。在典型的使用中,Path 和 Args 都是通過(guò)調(diào)用 Command 來(lái)設(shè)置的。參數(shù) [] 字符串函數(shù)。此函數(shù)返回字符串類型的數(shù)組https://golang.org/pkg/os/exec/ .Args 保存命令行參數(shù),從程序名稱開(kāi)始。在這種情況下,從命令行獲取文件名的簡(jiǎn)短方法是這個(gè)函數(shù)os.Args[1:]。這是輸出


elshan_abd$ go run main.go abc.txt

Hi guys  ('-')

File_name is :  abc.txt

Output file content is(like string type) : 

aaa

bbb

ccc

1234

Output file content is(like byte type) : 

[97 97 97 10 98 98 98 10 99 99 99 10 49 50 51 52 10] 

最后我們需要讀取內(nèi)容文件這個(gè)函數(shù) func ReadFile(filename string) ([]byte, error) 源是 https://golang.org/pkg/io/ioutil/#ReadFile


查看完整回答
反對(duì) 回復(fù) 2021-12-07
  • 3 回答
  • 0 關(guān)注
  • 340 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)