繁体   English   中英

Python 3.2 - readline() 正在跳过源文件中的行

[英]Python 3.2 - readline() is skipping lines in source file

我有一个用多行创建的 .txt 文件。

当我使用计数累加器运行 for 循环时,它会跳过行。

它跳过第一行,从第二行开始,打印第四行,第六行,等等......

我错过了什么?

** for your reading pleasure**
def main():
    # Open file line_numbers.txt
    data_file = open('line_numbers.txt', 'r')

    # initialize accumulatior
    count = 1


    # Read all lines in data_file
    for line in data_file:
        # Get the data from the file
        line = data_file.readline()

        # Display data retrieved
        print(count, ": ", line)

        # add to count sequence
        count += 1

尝试完全删除“line=data_file.readline()”? 我怀疑“for line in data_file:”也是一个 readline 操作。

您的 for 循环正在遍历 data_file 并且您的 readline() 正在与之竞争。 为此结果擦除代码的line = data_file.readline()行:

# Read all lines in data_file
count = 1
for line in data_file:
    # Display data retrieved
    print(count, ": ", line)

    # add to count sequence
    count += 1

for line in data_file已经为您获取了每一行的文本 - 随后对 readline 的调用将获取以下行。 换句话说,删除对 readline 的调用将做你想做的事。 同时,您不需要自己跟踪累加器变量 - python 有一种使用enumerate的内置方法 - 换句话说:

data_file = open('line_numbers.txt', 'r')
for count, line in enumerate(data_file):
    ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM