我有一个包含数据行的文本文件。我想使用python创建新的较小的文本文件,每个文件包含此主文本文件的指定子集。每个新文件应以第3列中的字符串命名,文件应包含第3列中包含该字符串的所有行,但应排除第3列,因为该信息现在存储在文件名中。我的主要问题是如何将最后一列指定为用于文件名的字符串。
输入文本文件的示例:
chr8:200-300 Gene1
chr8:400-500 Gene1
chr4:50-60 Gene2
chr4:90-200 Gene2
chr8:30-400 Gene3
chr8:9618-9749 Gene4
所需输出文件的示例,名为Gene2.txt:
chr4:50-60
chr4:90-200
答案 0 :(得分:1)
您可以通过以下方式解决问题:
答案 1 :(得分:1)
正如其他用户评论的那样,如果您使用字典,则可以迭代值。
with open("path/to/file.txt","r") as f:
d = {}
for line in f:
content,gene = line.strip().split()
if d.has_key(gene):
d[gene].append(content)
else:
d[gene] = []
d[gene].append(content)
for key,value in d.iteritems():
f = open("path/to/destination/{}.txt".format(key), "w")
for item in value:
f.write("{}\n".format(item))
f.close()