Python: 如何输出到文件而不是打印
Python: How to output to file instead of printing
这里是新手!
我有一个包含fasta的文本文件headers(大约1.5K;abc.txt):
>CP008746 location=complement(3239792..3241504),organism=Methanosarcina barkeri CM1,definition=methyl-coenzyme M reductase alpha subunit McrA
>CP009530 location=complement(2979486..2981198),organism=Methanosarcina barkeri 227,definition=Methyl coenzyme M reductase alpha subunit
我想删除除第一部分以外的所有内容:
>CP008746
>CP009530
假期一直在学习Python,所以写了(Python3.7.6):
with open("abc.txt","r+") as data_file:
for line in data_file:
data=line.split()
del data[1:]
print(data)
这给了我想要的输出,但我不确定如何将结果直接输出到新文件 - 我试过 print(data, file=data_file)
,但它只输出了我的几行所有的。我已经通过 copy-pasting 手动创建一个新文件来解决这个问题,但是必须有一种方法可以自动输出所有内容,对吗?
非常感谢任何帮助,如果已经回答,我深表歉意...!
谢谢!
你可以试试这个。许多解决方案都是可能的,这里是一个:
with open("abc.txt","r+") as data_file:
list_of_elements=[] # creating an empty list to store all elements interesting to you
for line in data_file:
data=line.split()
del data[1:]
print(data)
list_of_elements.append(str(data)) # appending the list with the elements
with open('file_to_write.txt', 'w') as f: # writing to a file
for line in list_of_elements:
f.write(line)
f.write('\n') # escape line at each element
如果你在 linux 运行 你的程序是这样的:
python3 file.py > output.txt
或者将您的数据从 python 写入文件:
with open("output.txt", "w") as f:
f.write(data)
这里是新手!
我有一个包含fasta的文本文件headers(大约1.5K;abc.txt):
>CP008746 location=complement(3239792..3241504),organism=Methanosarcina barkeri CM1,definition=methyl-coenzyme M reductase alpha subunit McrA
>CP009530 location=complement(2979486..2981198),organism=Methanosarcina barkeri 227,definition=Methyl coenzyme M reductase alpha subunit
我想删除除第一部分以外的所有内容:
>CP008746
>CP009530
假期一直在学习Python,所以写了(Python3.7.6):
with open("abc.txt","r+") as data_file:
for line in data_file:
data=line.split()
del data[1:]
print(data)
这给了我想要的输出,但我不确定如何将结果直接输出到新文件 - 我试过 print(data, file=data_file)
,但它只输出了我的几行所有的。我已经通过 copy-pasting 手动创建一个新文件来解决这个问题,但是必须有一种方法可以自动输出所有内容,对吗?
非常感谢任何帮助,如果已经回答,我深表歉意...!
谢谢!
你可以试试这个。许多解决方案都是可能的,这里是一个:
with open("abc.txt","r+") as data_file:
list_of_elements=[] # creating an empty list to store all elements interesting to you
for line in data_file:
data=line.split()
del data[1:]
print(data)
list_of_elements.append(str(data)) # appending the list with the elements
with open('file_to_write.txt', 'w') as f: # writing to a file
for line in list_of_elements:
f.write(line)
f.write('\n') # escape line at each element
如果你在 linux 运行 你的程序是这样的:
python3 file.py > output.txt
或者将您的数据从 python 写入文件:
with open("output.txt", "w") as f:
f.write(data)