因为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