gpt4 book ai didi

python - 使用 csvreader 根据空格或制表符拆分记录

转载 作者:行者123 更新时间:2023-11-30 23:20:20 36 4
gpt4 key购买 nike

我有一个记录文件,示例记录如下所示:

122792 2014-07-26   1672

前两条记录由空格分隔,后两条记录由制表符空格分隔。如何让 csvreader 读取所有三列?我尝试过类似的方法,但没有成功:

with open(path, 'rb') as csvfile:
dialect = csv.Sniffer().sniff(csvfile.read(), delimiters= [' ','\t'])
csvfile.seek(0)
reader = csv.reader(csvfile, dialect)
for row in reader:
print row
OUTPUT:
['122792 2014-07-26', '1672']

最佳答案

根据您的示例数据,您不需要在此处使用 csv 模块,而是使用 str.split 它将在所有空白(空格和例如选项卡):

with open('yourfile') as fin:
rows = (line.split() for line in fin)
for row in rows:
print row

如果如上所述您将有多个分隔符,那么可以将生成器函数更改为:

rows = (re.split('[ \t,;]+', line) for line in fin)

它使用正则表达式在空格、制表符、逗号或分号上进行分割,例如:

re.split('[ \t,;]+', 'a   b;d;e     \tfff,ghj')
# ['a', 'b', 'd', 'e', 'fff', 'ghj']

关于python - 使用 csvreader 根据空格或制表符拆分记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25565079/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com