我将尝试提供问题的示例。
我们说我们有3个名单。例如: -
list1 =['one','two','three']
list2=['a','b','c']
list3=['mike','jack','ram']
或者说,文件中的每一行都有列表值。
['one','two','three']
['a','b','c']
['mike','jack','ram']
现在我想通过创建它们将三个列表写入三个不同的文件。应自动生成文件的名称,例如: -
file001.txt
file002.txt
file003.txt
答案 0 :(得分:1)
我假设您的数据在控制台中,每个列表都是一行。
类似这样的事情:
line1 =['one','two','three']
line2=['a','b','c']
line3=['mike','jack','ram']
我将所有数据合并到一个列表
中all_data = [line1] + [line2] + [line3]
如果所有列表值在一个变量中逐行排列,则不需要以上部分。如果没有,你可以使用某种方法合并它们。
现在,将每一行(列表值)写入不同的文件:
count = 1
for data in all_data:
output = open('file' + str(count) + '.txt', 'w')
output.write(','.join(data))
count += 1
output.close()
这一直持续到列表的最后一个值。所以,根据有多少列表。如果您想加入列表中的值,可以使用单引号(''.join
)中的所需内容更改''
。
希望我帮助过。
答案 1 :(得分:0)
您可以看到详细解释here。但总而言之,你可以通过打开一个文件(或创建一个文件,如果它不存在),然后编写/读取/等等来定义文件类型的对象...
答案 2 :(得分:0)
使用enumerate和string formatting构建文件名。
s = 'file{:03}.txt'
for n, lyst in enumerate((list1, list2, list3), 1):
fname = s.format(n)
with open(fname, 'w') as f:
#f.write(','.join(lyst))
f.write('\n'.join(lyst))
如果任何项目不是字符串,请将写入更改为
f.write('\n'.join(map(str, lyst)))
如果列表太长以至于无法创建要写入文件的单个字符串,请将写更改为
for thing in lyst:
f.write('{}\n'.format(thing))