在不使用python覆盖的情况下编写文件?
我想写两个文件,一个包含lst[0],另一个包含lst[1]。 这样,它就不起作用了,因为文件被覆盖了在不使用python覆盖的情况下编写文件?,python,list,text,overwrite,Python,List,Text,Overwrite,我想写两个文件,一个包含lst[0],另一个包含lst[1]。 这样,它就不起作用了,因为文件被覆盖了 lst = ['hello world', 'hi I am Josh'] 如何修复该代码?您需要指定不同的文件名: for wd in lst: with open('hey.txt', 'wb') as f: f.write(wd) 这将在hey0.txt中输出hello world,在hey1.txt中输出hi I'm Josh 您可以替换以下事件: lst = [
lst = ['hello world', 'hi I am Josh']
如何修复该代码?您需要指定不同的文件名:
for wd in lst:
with open('hey.txt', 'wb') as f:
f.write(wd)
这将在hey0.txt中输出hello world,在hey1.txt中输出hi I'm Josh
您可以替换以下事件:
lst = ['hello world', 'hi I am Josh']
index = 0
for wd in lst:
with open('hey%s.txt' % index, 'wb') as f:
f.write(wd)
index += 1
放弃:
open('hey%s.txt' % index
通过这种方式,您将得到hey.txt和hey1.txt。如果它等于0,则不会附加索引。您可以切换循环的顺序:
open('hey%s.txt' % (index if index else '')
或者您可以切换到附加模式:
with open('hey.txt', 'wb') as f:
for wd in lst:
f.write(wd)
或者一气呵成:
for wd in lst:
with open('hey.txt', 'ab') as f:
f.write(wd)
或写入两个不同的文件:
with open('hey.txt', 'wb') as f:
f.write("\n".join(lst))
为什么在同一位置可以有两个同名的不同文件?想想你在这里要做什么…非常非常有用!!我不知道%方法,它是如何工作的?为什么我们使用%s?非常感谢你!它用传递给它的参数替换字符串的一部分。iirc,%s表示“将其用作字符串”,您可以使用此语法设置一些数字格式。就像我写了“嘿”+strindex+.txt”。这里还有一些解释:我在写答案时忘记了“枚举”。我发现它比我那样声明索引变量更干净:
for j, wd in enumerate(lst):
with open('hey_%i.txt' % j, 'wb') as f:
f.write(wd)