我在这个网站上发现了一些有用的东西,但是我的输入文件与已发布的示例有所不同,我无法以有效的方式实现飞跃。
我的输入文件如下所示:
sample_dude data1 data2 data3 data4
sample_lady data5 data6 data7 data8
sample_dude data9 data10 data11 data12
sample_child data13 data14 data15 data16
我想为每个样本创建一个包含所有数据列的单独文件。例如,一个文件名为sample_dude.txt,如下所示:
data1 data2 data3 data4
data9 data10 data11 data12
样本数量未知但总是只有四个数据列。
任何帮助非常感谢。谢谢。
PS:我正在尝试在python中执行此操作。
答案 0 :(得分:4)
您可以通过打开文件并循环遍历每一行来完成此操作。我不会为你编写代码,但这是一个算法。
# Open the input file
# Loop through each line of the file
# Split the line into the file name and the data
# Open the file name and append the data to the end
您还可以在打开文件之前保存所有文件的数据。如果您有许多包含多行的文件,这会更快。
答案 1 :(得分:0)
例如:
with open('input.txt') as input:
for line in input:
name, data = line.split(' ', 1)
with open('{0}.txt'.format(name), 'a') as f:
f.write(data)
答案 2 :(得分:0)
尝试这样的事情?拆分将所有文件名映射到列列表,创建并写入每个文件的行。
with open('someFile.txt') as f:
out = {}
for line in f:
key, data = line.split(' ', 1)
if not key in out.keys():
out[key] = []
out[key].append(data)
for k, v in out.items():
with open(k+'.txt', 'w') as f:
f.writelines(v)