读取和写入新文件Python的数据

时间:2016-08-25 07:36:24

标签: python file

我必须通过读取另一个文件将子字符串写入新文件。我面临的问题是它只写了最后找到的子字符串。 这是我尝试过的。

def get_fasta(site):

with open('file1.txt', 'r') as myfile:
        data=myfile.read()
        site = site-1
        str1 = data[site:site+1+20]
        temp = data[site-20:site]
        final_sequence = temp+str1
        with open('positive_results_sequences.txt', 'w') as my_new_file:
            my_new_file.write(final_sequence + '\n')
def main():
    # iterate over the list of IDS
    for k,v in zip(site_id_list):
        get_fasta(v)

if __name__ == '__main__':
    main()

1 个答案:

答案 0 :(得分:2)

那是因为您已经以w模式打开了内部文件,每次都会重新创建文件。所以最终结果是只有最后一次写入仍然存在。您想使用a模式(代表“追加”)。

您的代码还存在其他一些问题。例如,在每次循环迭代中打开和关闭两个文件。您应该将文件打开代码移到外面并将它们作为参数传递:

def main():
    with open('file1.txt', 'r') as myfile:
        with open('positive_results_sequences.txt', 'a') as my_new_file:
            for k,v in zip(site_id_list):
                get_fasta(v, myfile, my_new_file)