我有一个包含196个列表的文件,我想创建新的196个输出文件,并将每个列表写入一个新文件中,这样我将有196个输出文件,每个文件包含一个输入数据列表 以下是输入文件:
"['128,129', '116,118', '108,104', '137,141', '157,144', '134,148', '138,114', '131,138', '248,207', '208,247', '246,248', '101,106', '131,115', '119,120', '131,126', '138,137', '132,129']"
"['154,135', '151,147', '236,244', '243,238', '127,127', '125,126', '122,124', '123,126', '127,129', '122,121', '147,134', '126,132', '128,137', '233,222', '222,236', '125,126']"
……例如,我只给出了两个列表,但总共有196个列表。 输出应为:
文件1:
128,129
116,118
108,104
文件2:
154,135
151,147
236.244
当前代码:
fn = open("/home/vidula/Desktop/project/ori_tri/inpt.data","r")
fnew = fn.read()
fs = fnew.split('\n')
for value in fs:
f = [open("/home/vidula/Desktop/project/ori_tri/input_%i.data" %i,'w') for i in range(len(list_of_files))]
f.write(value)
f.close()
错误:列表没有属性写入。
你的f是一个文件列表,你必须遍历它:
在列表理解中,不能让python在list类中查找write对象作为iterable。列表与write()方法不兼容。在python中会附加列表。
假设数据文件中已有新行,则创建一个filter对象以删除空行,然后重复:
最简单的方法:
Python式的简单方法:
您当前的代码正在将所有内容加载到内存中,这是非常不必要的,然后它在一个不合适的位置列出一个列表,因此出现错误。试试这个:
这只会将每一行按原样写入每个文件。查找我用于索引的enumerate函数。
这样做之后,您仍然需要编写解析逻辑来将每一行转换成一系列行……我不打算在这里为您这样做,因为您的原始代码也没有真正的逻辑。
相关问题 更多 >
编程相关推荐