因爲new_list
顯然是一行行列表,而不是文件名,所以您不需要所有的東西和 ing和read
。而且你也不能保存在一個單一的write
。
但你可以做到差不多那簡單。
您沒有指定new_list
中的行是否仍然有換行符。我們先假設他們這樣做。所以,你需要做的是:
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write(''.join(new_list))
...或...:
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.writelines(new_list)
但是你的老師可能是希望這樣的事情:
def save_file(filename, new_list):
with open(filename, 'w') as f:
for line in new_list:
f.write(line)
如果有什麼新行被剝奪關閉,所以我們必須將它們添加回來?然後,事情有點複雜了前兩種方式,但還是很容易的第三種方式:
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.write('\n'.join(new_list) + '\n')
def save_file(filename, new_list):
with open(filename, 'w') as f:
f.writelines(line + '\n' for line in new_list)
def save_file(filename, new_list):
with open(filename, 'w') as f:
for line in new_list:
f.write(line + '\n')
同時,你有沒有得到到load_file
工作。它應該返回一個行列表,但它不返回任何內容(或者,它返回None
)。只需將其打印出來供用戶查看,它就不會存儲任何內容供以後使用。
你想是這樣的:
def load_file(filename):
lines = []
with open(filename, 'Ur') as f:
for line in f:
lines.append(line)
return lines
然而,有一個更簡單寫這種方式。如果你可以做for line in f:
,那麼f
是某種可迭代的。它與列表幾乎一樣 - 如果你想將它變成一個實際的列表,那很簡單:
def load_file(filename):
with open(filename, 'Ur') as f:
return list(f)
什麼是「正確的格式」?你有什麼要求?你到目前爲止嘗試了什麼? – glglgl 2013-03-22 08:36:14
列表的內容是什麼?您是否需要稍後從文件中恢復Python中的列表? – 2013-03-22 08:36:59
os.system(「cat file1 file2> file3」) – Paul 2013-03-22 08:40:30