我正在尝试将列表中的每个元素写入多个文件。
假设我有一个列表:
value = [ 'abc' , 'def' , 'ghi' ]
如何将列表value
中的每个元素写入多个文件?因此,在这种情况下,应该创建三个文本文件,并且每个文件中的值分别为abc,def
和ghi
。
我有一个简单的python脚本,该脚本会将所有列表值写入单个文本文件:
value = ['a','b','c']
for i in value:
f=open('/tmp/new.txt','a')
f.write(i)
如何实现用例?预先感谢。
答案 0 :(得分:2)
如果您尝试将列表中包含的每个值写入所有n个文件,则可以使用for循环遍历下面的f.write()
文件写入命令。您只需写入每个文件一次,因此无需担心open()
的'a'或'w +'模式。然后,您可以使用str.join()
方法将列表的所有元素打印到每个文件。我在下面使用换行符作为分隔符,但是您可以选择任何内容。
这是我更改您的代码以执行此操作的方式...
value = ['a','b','c']
for i in range(len(value)):
with open("new_%d.txt" % i, 'w') as f:
f.write('\n'.join(value))
还请注意使用with
打开每个文件。建议使用python中的最佳做法,因为它可以处理您用open()
创建的文件对象。也就是说,使用f.close()
完成操作后,您无需显式关闭文件,这很容易忘记。
如果您设置为以new_1.txt
开头(与new_0.txt
相对,这就是上面的代码将要发生的情况),则将对for
的调用更改为以下内容:>
for i in range(1,len(value)+1):
或将对with
的呼叫更改为:
with open("new_%d.txt" % (i+1), 'w') as f:
答案 1 :(得分:0)
您可以执行以下操作:
for n, i in enumerate(value, 1):
with open('/tmp/new{}.txt'.format(n), 'a') as f:
f.write(i)
答案 2 :(得分:0)
下面应该可以工作:
value = ['a','b','c']
for i in range(len(value)):
f=open('/tmp/new_%s.txt' % i ,'a')
f.write(value[i])
答案 3 :(得分:0)
使用w+
文件模式。它会打开一个现有文件,或者创建一个尚不存在的文件并写入:
value = ['a','b','c']
for x in value:
with open(f'/tmp/new{x}.txt','w+') as f:
f.write(x)