亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang 無法寫入文本文件:句柄無效

golang 無法寫入文本文件:句柄無效

Go
肥皂起泡泡 2021-10-11 10:49:55
再次大家好,我很抱歉這么快就問了另一個問題,但最近 Go 似乎是一件又一件的事情。我有一個可用的網頁抓取工具(感謝大家的幫助),它可以從這個 wiki 頁面獲取我想要的所有信息:http : //monsterhunter.wikia.com/wiki/MH4U : _Item_List然后它顯示我想要的一切,沒有打嗝。但是,當我寫入 .txt 文件時,我收到一條錯誤消息:“0 write mh4u.txt:句柄無效”這是我當前的代碼供參考:package mainimport (    "fmt"    "log"    "github.com/PuerkitoBio/goquery"    "os"    "io")func main() {    filename := "mh4u.txt"    file, err := os.Create(filename)    if err!= nil {        fmt.Println(err)    }    doc, err := goquery.NewDocument("http://www.ign.com/wikis/monster-hunter-4/Items")    if err != nil {        log.Fatal(err)    }    doc.Find("tbody").Each(func(i int, s *goquery.Selection) {        s.Find("td").Each(func(j int, s2 *goquery.Selection) {            if s3 := s2.Find("img"); s3 != nil && s3.Length() > 0 {                return            }            fmt.Printf(s2.Text())            n, err := io.WriteString(file, s2.Text())            if err != nil {                fmt.Println(n, err)             }        })        file.Close()    })}用其他網站測試這段代碼讓我相信可能有一些隱藏的字符給作者帶來了一些問題,但這是我唯一能猜到的。非常感謝您提供的任何建議/提示/解決方案!
查看完整描述

1 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

你file.Close()在一個閉包內調用。如果doc.Find("tbody").Each被多次調用,您最終將嘗試寫入一個關閉的文件。您應該在創建文件后立即推遲關閉文件:


file, err := os.Create(filename)

if err != nil {

    log.Fatal(err)

}

defer file.Close()


查看完整回答
反對 回復 2021-10-11
  • 1 回答
  • 0 關注
  • 355 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號