在 Python 3 中从文本文件中分割行

问题描述 投票:0回答:3

我正在尝试在如下所示的文本文件上使用分割线:

12/1 AH120 LAX PEK 12:30 21:00
12/2 C32 PEK HNA 12:40 20:00
12/3 D34 MON DOE 3:00 4:00
12/5 A100 ICS SEL 4:00 12:00

这是代码:

f = open('flights.txt', 'r')

for line in f:
    x = f.readline()
    y = x.split()
    print(y)

我遇到的问题是,它没有给我每行的列表,而是跳过几行,输出如下所示:

['12/2', 'C32', 'PEK', 'HNA', '12:40', '20:00']
['12/3', 'D34', 'MON', 'DOE', '3:00', '4:00']

如您所见,它缺少以 12/1 和 12/5 开头的行。 我不知道为什么我会遇到这个问题。谁能告诉我我做错了什么?

python python-3.x
3个回答
11
投票

您已经在使用

for line in f
阅读一行了。然后,您使用
f.readline
读取一行并使用它,但跳过
line
中的一行。因此,你错过了一些线路

for line in f:
    y = line.split()
    print(y)

5
投票

使用

for line in f
已经一行一行地阅读。像这样使用它:

with open('flights.txt', 'r') as f:
    for line in f:
        y = line.split()
        print(y)

0
投票

lines = [line.split() for line in f]

© www.soinside.com 2019 - 2024. All rights reserved.