【问题标题】:Python CSV different delimiterPython CSV不同的分隔符
【发布时间】:2022-01-09 21:09:14
【问题描述】:

我正在尝试读取以 ` 作为分隔符的文件。我已经为不同的分隔符尝试了其他一些解决方案,但似乎都没有。

with open("data.csv", "r") as data:
    for line in data:
        for line.split('`') as element:
            print(element)

示例输入文件:

sarah`120`18kg`22Rep
thomas`160`8kg`11Rep

预期的结果应该是:

sarah
120
18kg
22Rep
thomas
160
8kg
11Rep

但这就是我得到的:




感谢您的宝贵时间!

【问题讨论】:

标签: python csv


【解决方案1】:

我建议使用标准库中的 DictReader 类,如下所示:

import csv

def read_csv(filepath: str) -> list:
    """Read csv file from given path, return contents as list of dictionaries"""
    with open(filepath, encoding='utf-8') as f:
        r = csv.DictReader(f, delimiter='`')
        return list(r)

print(read_csv("data.csv"))

【讨论】:

  • 成功了,谢谢!
【解决方案2】:

也许可以尝试一个名为 pandas 的 python csv 库。

我找到了一个tutorial,它向您展示了如何使用自定义分隔符。

pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, ....)

我认为这条线对你最有用。

【讨论】:

【解决方案3】:

我没有机会对此进行测试,但是您在所有元素上的循环看起来都不正确。试试:

with open("data.csv", "r") as data:
    for line in data:
        for element in line.split('`'):
            print(element)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2011-11-17
    • 2016-10-03
    • 2015-12-06
    相关资源
    最近更新 更多