python - 为什么将 .read() 放入我的代码中会导致它不起作用?

标签 python file

我的代码如下:

input_seq = open("input.txt")
sequences = input_seq.read()
output = open("output.txt", "w")

for dna in input_seq:
    trimmed = dna[14:]
    length = len(trimmed)
    output.write(trimmed)
    print("processed sequence with length " + str(length))

我的问题是关于第二行“sequences = input_seq.read()”。当我将它包含在我的代码中时,它无法正确执行。当我删除它时,代码可以完美运行。

为什么 .read() 行会导致整个事情无法正常工作。

输入的是

ATTCGATTATAAGCTCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATC
ATTCGATTATAAGCACTGATCGATCGATCGATCGATCGATGCTATCGTCGT
ATTCGATTATAAGCATCGATCACGATCTATCGTACGTATGCATATCGATATCGATCGTAGTC
ATTCGATTATAAGCACTATCGATGATCTAGCTACGATCGTAGCTGTA
ATTCGATTATAAGCACTAGCTAGTCTCGATGCATGATCAGCTTAGCTGATGATGCTATGCA

正确的输出是

TCGATCGATCGATCGATCGATCGATCGATCGATCGATCGATC
ACTGATCGATCGATCGATCGATCGATGCTATCGTCGT
ATCGATCACGATCTATCGTACGTATGCATATCGATATCGATCGTAGTC
ACTATCGATGATCTAGCTACGATCGTAGCTGTA
ACTAGCTAGTCTCGATGCATGATCAGCTTAGCTGATGATGCTATGCA

基本上,目的是删除 input.txt 文件中所有行共有的前 14 个字符。

执行时没有任何错误消息,但实际上什么也没有发生。 output.txt 文件保持空白。

最佳答案

正如评论中提到的,sequences = input_seq.read()读取变量中的所有文件内容,并且在此语句之后input_seq指向文件末尾。
您可以使用这两个选项中的任何一个,但不能同时使用这两个选项。
第一个选项

with open('input.txt') as inp_seq, open('output.txt', 'w') as output:
    for dna in input_seq:
        trimmed = dna[14:]
        output.write(trimmed)
        print("processed sequence with length " + str(len(trimmed)))

第二个选项 - 首先读取变量中的所有输入文件

with open('input.txt') as inp_seq:
    sequence = inp_seq.read()

with open('output.txt', 'w') as output:
    for dna in sequence:
        trimmed = dna[14:]
        output.write(trimmed)
        print("processed sequence with length " + str(len(trimmed)))

关于python - 为什么将 .read() 放入我的代码中会导致它不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049873/

相关文章:

python - 如何在 Spacy 的句子中获取实体索引?

python - 如何读取二进制文件?

java - 正则表达式:在Java中分割复杂列表(两列)

无法从 C 中的文本文件中提取值

Python迭代器问题

python - 字节命令功能不适用于 PySerial

python - memcached 中的 Scrapy http 缓存存储

python - 从 strace 输出中提取唯一的系统调用名称(通过正则表达式?)

c# - 当值 > 127 时 BinaryWriter.Write(byte value) 问题

file - 使用Delphi读取Exif GPS信息