我正在使用scrapy來抓取一些數據。 我得到了2蜘蛛=蜘蛛a和b從第二個蜘蛛讀取的文件陷入了困境
蜘蛛a獲取一些數據並將其寫入文件。 蜘蛛b讀取數據。
問題是,蜘蛛B會得到一個空文件。
我可以看到,蜘蛛完成他的工作後,該文件被填充。
我花了幾個小時圖了這一點。
代碼片段:
蜘蛛
f = open('file.txt', 'a+')
f.write("str")
f.write("\n")
f.close()
蜘蛛b
f = open('file.txt')
for line in f:
print line
f.close()
沒有出來,有什麼不對呢?
編輯:我得到它的工作。 我用'a'打開一個文件 寫一行然後關閉文件。 這適用於所有行。
代碼段進行了修訂。
是的,而不是相信'flush'我只是關閉文件。 – DSM 2012-07-19 18:33:24
@DSM是的,一致認爲,這通常是更好的方法,除非由於某種原因該文件需要保持打開狀態(想不到這是一個很好的例子) – Levon 2012-07-19 18:34:20
我認爲這是與蜘蛛a失蹤關閉有關。 我沒有找到合適的狀態來關閉它。 我想在所有請求完成時關閉它。 有沒有辦法知道這樣的事情? 我試過了__del__函數,但這並沒有辦法。 當我試圖讀取一個文件蜘蛛A沒有創建,蜘蛛B產生正確的行爲。 – DjangoPy 2012-07-19 19:23:18