x.split顺序(从上到下)可能吗?

时间:2018-02-24 11:23:58

标签: python split

最近我使用python创建了一个项目,但是当我测试它时我感到很困惑。

我使用x.split分隔部分文本,然后转到下一行。这就是我正在处理的事情:

list = [x.split(':') for x in open(path).read().split('\n')]

path =获取文件目录的变量

在文件中,格式如下:

abcd:1234
abcd:abc40

等等。 我发现它不断重复同一条线。

如何从文件的从上到下进行操作? (按顺序)

2 个答案:

答案 0 :(得分:0)

您的代码不应出现您报告的问题。列表中可能有一个尾随空的项目,但不是重复项或随机行,它将按顺序处理。

无论如何,您不需要将整个文件读取并拆分成行,如果您简化代码,问题可能会消失。您可以直接从文件处理数据,如下所示:

data = [x.rstrip().split(':') for x in open(path)]

rstrip()删除每行末尾的任何空白字符,包括任何终止的新行字符。

或者你可以使用csv模块,避免自己分割线条的麻烦:

import csv

with open(path, newline='') as f:
    data = [row for row in csv.reader(f, delimiter=':')]

答案 1 :(得分:0)

如果您的文件是这样的

abcd:1234
abcd:abc40
pizd:1234
adcd:abc40

然后

with open('p.txt', 'r+') as f:
    mylist = f.read().splitlines()

print (mylist)

data = [x.rstrip().split(':') for x in mylist]
print (data)

输出

['abcd:1234', 'abcd:abc40', 'pizd:1234', 'adcd:abc40']
[['abcd', '1234'], ['abcd', 'abc40'], ['pizd', '1234'], ['adcd', 'abc40']]