我發現了類似的問題,並嘗試了內部提出的解決方案,似乎沒有解決我的問題。我試圖做的是實質上將數據從一個文件複製到另一個文件,即使它沒有錯誤我們已經驗證了'line'變量是一個字符串並且包含正確的數據,但它不會寫入文件。我目前使用python 2.7。python寫入文件不寫
我試圖添加.flush(),因爲一些其他解決方案建議沒有成功。我已經證實,如果我在第一個for循環之前寫入一個靜態字符串,它實際上會寫入該文件。我的懷疑是這兩個文件打開並迭代其中之一有關,但我不確定這是否有效。
with open("data/data.csv", 'w+') as data_file, open("data/raw/" + data_point + ".csv", 'r') as raw_file:
for line in raw_file:
line = line.split(',')
temp_date = datetime(int(line[0]), int(line[1]), int(line[2]))
if newest_date == datetime(1,1,1):
newest_date = temp_date
if temp_date < oldest_date:
oldest_date = temp_date
sorted_raw = [[float(line[4]), float(line[5])]] + sorted_raw
raw_file.seek(0) # reset read pointer
for line in raw_file:
data_file.write(line)
編輯:我現在意識到我的白癡。我有第二個未完成的功能,基本上是這個修改後的副本粘貼,但沒有寫入。每次打開文件的「w +」方法都會清除它,因爲在完成這段代碼之後總是會調用第二個函數,所以我永遠無法捕獲寫入的文件。我很抱歉的噪音
您的'data'子目錄是否與您的腳本存在於相同的目錄中? – Soviut
是的,我想我也應該注意到這是目前在Windows 10下運行的 – beeedy
在這種情況下(在那裏真的不存在問題,因爲問題完全不同)的禮貌的事情是刪除你的問題 - 儘管在這種情況下,您需要@ Soviut的合作才能這樣做,因爲低代表用戶無法在任何有回答的答案出現時自行刪除。 –