<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                1. # 文件操作 * * * * * --: 作者:Fuzz 時間:2018年8月15日 * * * * * os 包提供了不依賴平臺的操作系統函數接口。 ### 創建目錄 os.Mkdir("./test",0777) //創建一個新的文件夾,文件夾存在則報錯 os.MkdirAll("./test/test",0777)//創建新文件夾,文件夾存在則不做任何處理,除非linux權限(mkdir dirName: permission denied) 0777前面的0原來是叫個suid和guid的東西。liunx 會繼承父級權限。 ### 遍歷目錄 dirs, err := ioutil.ReadDir(dirName) //獲取指定文件夾下的文件與文件夾的名字 err := filepath.Walk() //遞歸方式遍歷 ### 創建文件 os.create(file_name)//創建文件,如果文件已經存在則刪除,重新創建新的文件 ### 打開文件 os.Open(file_name) //打開文件,只讀權限(O_RDONLY),文件不存在報錯 os.OpenFile("10.txt",os.O_RDWR|os.O_APPEND|os.O_CREATE,0)//可自定義設置文件打開模式 O_RDONLY:只讀模式(read-only) O_WRONLY:只寫模式(write-only) O_RDWR:讀寫模式(read-write) O_APPEND:追加模式(append) O_CREATE:文件不存在就創建(create a new file if none exists.) O_EXCL:與 O_CREATE 一起用,構成一個新建文件的功能,它要求文件必須不存在(used with O_CREATE, file must not exist) O_SYNC:同步方式打開,即不使用緩存,直接寫入硬盤 O_TRUNC:打開并清空文件 ### 關閉資源句柄 defer f.Close()//關閉文件,defer 延遲函數的運行 ### 讀取文件 //需要引入新的一個包 import bufio scanner := bufio.NewScanner(f) //創建一個 Scanner 來掃描 r,默認匹配函數為 ScanLines。 for scanner.Scan(){ //檢測是否讀取到末尾EOF返回真假 fmt.Println(scanner.Text()) //已文本形式輸出每行內容 } ### 寫入文件 offset為相對偏移量,而whence決定相對位置:0為相對文件開頭,1為相對當前位置,2為相對文件結尾。它返回新的偏移量(相對開頭)和可能的錯誤。 whence在系統中定義的有常量: SEEK\_SET:0 SEEK\_CUR:1 SEEK\_END:2 Seek(offset,whence) file1.WriteString("lsadasdasdas1231321")) file1.Write([]byte("lsadasdasdas1231321\r\n")) ### 文件刪除 os.Remove(name) //刪除制定文件和目錄,注意刪除目錄時只能刪除空目錄。 os.RemoveAll(name)//刪除制定文件和目錄。如果刪除文件不存在不會拋出異常返回nil,刪除成功也會返回nil ### 判斷文件或文件夾是否存在 os.Stat(path) //如果返回的錯誤為nil,說明文件或文件夾存在 os.IsNotExist(path) //判斷為true,說明文件或文件夾不存在 如果返回的錯誤為其它類型,則不確定是否在存在 ### 文件copy io.Copyt("復制后的文件句柄","復制前的文件句柄") //把一個文件的內容copy的內一個文件當中。 ### 導出內容到Excel import "encoding/csv" f.WriteString("\xEF\xBB\xBF") //寫入UTF-8 BOM,此處如果不寫入就會導致寫入的漢字亂碼 w := csv.NewWriter(f) w.Write()//寫入第一行默認為表頭 w.WriteAll()//寫入多行 w.Flush() ~~~ //Mick版本 package main import ( "os" "fmt" "bufio" "io/ioutil" "io" "path/filepath" ) //文件夾創建 func dirCreate(dirName string,mode int) { var err error switch mode { case 1: err = os.Mkdir(dirName,0777) //創建一個新的文件夾,文件夾存在則報錯 case 2: err = os.MkdirAll(dirName,0777) //創建新文件夾,文件夾存在則不做任何處理,除非linux權限(mkdir dirName: permission denied) } fmt.Println(err) } //文件夾遍歷,獲取指定文件夾下的文件與文件夾的名字 func eachDir(dirName string){ dirs, err := ioutil.ReadDir(dirName) if err != nil { fmt.Println(err) } for _,v := range dirs{ fmt.Println(v.Name()) } } //文件遞歸遍歷 func getFileList(path string) { err := filepath.Walk(path, func(path string, f os.FileInfo, err error) error { if f.IsDir() { return nil } fmt.Println(path) return nil }) if err != nil { fmt.Println("filepath.Walk()") } } //文件創建 func fileCreate(fileName string){ fileHandle,err := os.Create(fileName) //創建文件,如果文件已經存在則刪除,重新創建新的文件 fmt.Println(fileHandle,err) } //文件讀取 func readFile(fileName string,mode int){ //fileHandle,err := os.Open(fileName) //打開文件,只讀權限(O_RDONLY),文件不存在報錯 fileHandle,err := os.OpenFile(fileName,os.O_RDWR|os.O_CREATE,0) //可自定義設置文件打開模式 defer fileHandle.Close() //函數返回前執行文件資源關閉操作(好習慣) if err != nil{ panic(err) } if mode == 1{ //方案1 直接按行讀取 scanner := bufio.NewScanner(fileHandle) //Scanner結構體用于按行讀取 for scanner.Scan(){ //檢測是否讀取到末尾EOF返回真假 fmt.Println(scanner.Text()) //返回字符串 } }else if mode ==2{ //方案2 按照指定定界符讀取 reader := bufio.NewReader(fileHandle) for{ line, err := reader.ReadString('\n') if err != nil || err == io.EOF{ break } fmt.Println(line,err) } }else if mode == 3{ //方案3 一次性讀取完 data,err := ioutil.ReadAll(fileHandle) // fmt.Println(string(data),err) } } //文件寫入 func writeFile(fileName string,content string){ fileHandle,err := os.OpenFile(fileName,os.O_RDWR|os.O_APPEND,0) //追加讀寫方式 if err != nil{ panic(err) } //num,err := fileHandle.WriteString(content) //字符串寫入,返回寫入的字節數量 num,err := fileHandle.Write([]byte(content)) //字節寫入,返回寫入的字節數量 fmt.Println(num,err) } //文件刪除 func removeFile(fileName string){ err := os.Remove(fileName) fmt.Println(err) } //檢測文件夾文件夾是否存在 func FDExists(name string) { _,err := os.Stat(name) // 獲取文件的基本信息 if os.IsNotExist(err){ //判斷文件不存在 fmt.Println(false) }else{ fmt.Println(true) } } func main() { //dirCreate("mick/a/a",2) //文件夾創建操作 //eachDir("mick") //遍歷文件夾 getFileList("mick") //遞歸遍歷文件 //fileCreate("mick/a.txt") //文件創建 //readFile("mick/a.txt",3) //文件讀取 //writeFile("mick/a.txt","a\n") //字符串的形式寫入文件 //removeFile("mick/a.txt") //文件刪除 //FDExists("mick/a.txtq") } //FUZZ版本 package main import ( "fmt" "os" "bufio" ) //文件操作 func main() { //創建文件目錄 err := os.Mkdir("./demo",0777) //前面的0原來是叫個suid和guid的東西. r 4 w 2 x 1 s 4 g 2 u 1 所屬人 所屬組 linux 權限繼承上級目錄 fmt.Println(err) err = os.MkdirAll("./demo1/demo1/demo2",0777) fmt.Println(err) file,_ := os.Create("a.txt") //已存在后,會覆蓋源文件 fmt.Println(file.Name()) f,e := os.Open("a.txt") /* O_RDONLY:只讀模式(read-only) O_WRONLY:只寫模式(write-only) O_RDWR:讀寫模式(read-write) O_APPEND:追加模式(append) O_CREATE:文件不存在就創建(create a new file if none exists.) O_EXCL:與 O_CREATE 一起用,構成一個新建文件的功能,它要求文件必須不存在(used with O_CREATE, file must not exist) O_SYNC:同步方式打開,即不使用緩存,直接寫入硬盤 O_TRUNC:打開并清空文件 */ f,e = os.OpenFile("b.txt",os.O_RDWR|os.O_CREATE|os.O_APPEND,0777) if e != nil{ fmt.Println(e) } fmt.Println(f,e) defer f.Close() //關閉文件 s := bufio.NewScanner(f) ///*offset:開始的偏移量,也就是代表需要移動偏移的字節數 //whence:給offset參數一個定義,表示要從哪個位置開始偏移;0代表從文件開頭開始算起,1代表從當前位置開始算起,2文件結尾開始*/ for s.Scan(){ fmt.Println(s.Text()) //輸出每行內容 } a := []byte("你好世界\n換行") f.Write(a) weizhi,_ := f.Seek(0,0) b := make([]byte,1024) du,xie := f.Read(b) fmt.Println(weizhi,du,xie,string(b)) e = os.RemoveAll("./demo")// 空文件加 e = os.Remove("./demo11") fmt.Println(e) path := "E:\\GOPATH\\src\\test\\a.txt" _,e = os.Stat(path) fmt.Println(os.IsNotExist(e)) } ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看