最近我使用python创建了一个项目,但是当我测试它时我感到很困惑。
我使用x.split分隔部分文本,然后转到下一行。这就是我正在处理的事情:
list = [x.split(':') for x in open(path).read().split('\n')]
path =获取文件目录的变量
在文件中,格式如下:
abcd:1234
abcd:abc40
等等。 我发现它不断重复同一条线。
如何从文件的从上到下进行操作? (按顺序)
答案 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']]