【问题标题】:Trouble splitting a String with Python使用 Python 拆分字符串时遇到问题
【发布时间】:2011-06-01 12:24:49
【问题描述】:

我正在拼命尝试使用 Python 拆分字符串,但我需要解析的文本文件有点棘手:

  • 文本文件是逗号分隔的数据文件

我做了以下事情:

import fileinput
for line in fileinput.input("sample.txt"):
data = line.strip().split(',')
pass

这实际上应该使工作正确吗?

好的,现在是棘手的部分:我有一些包含逗号的字段,如下所示:

"(CONTRACTS OF 5,000 BUSHELS)"

使用我的代码,脚本还将这个字段拆分为 2。

如何让 python 使用逗号作为分隔符,而不是用 "" 括起来?

提前感谢您的回答

呲牙

【问题讨论】:

  • 为什么你的代码示例中有pass
  • 似乎解决方案就在问题中:The text file is a comma separated data file. 我很困惑,因为文件扩展名是.txt... 一天几乎一无所获:) 谢谢。跨度>

标签: python parsing split text-processing


【解决方案1】:

您的数据采用非常常见的格式——逗号分隔值 (CSV)。与其编写另一个解析器,不如考虑使用内置的csv 模块。

【讨论】:

  • 似乎是个好建议,但是在这种情况下如何使用 csv 模块的示例将真正改善这个答案。
  • 官方文档中有很多例子,我不认为复制其中一个会有什么不同。
  • 也许是因为我从未使用过 csv 库,在阅读了几分钟的文档后让我感到困惑。你是对的,你已经提供了必要的东西。但如果这是我的问题,它会对我产生影响。
  • @FarmBoy:请单击我的答案中指向csv 模块的链接,然后向下滚动几行到第一个绿色框,这是一个非常简单的示例。请保持礼貌,我完全同意@S.Lott 的评论。
  • @FerdinandBeyer 谢谢。已删除评论。
【解决方案2】:

CSV 文件应使用csv 处理。

【讨论】:

    【解决方案3】:

    您可以使用csv 模块

    import csv
    
    with open('sample.txt', 'rb') as f:
        reader = csv.reader(f)
        for row in reader:
            # each row is a list of items,
            # corresponding to each row in your file,
            # including commas for quoted items
    

    【讨论】:

    • 我会赞成这个答案,如果它在评论所在的地方包含有意义的东西。
    • 问题没有具体说明他在做什么
    • 他在逗号上拆分,但不是在引号内的逗号上拆分。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 2014-08-10
    • 1970-01-01
    • 2023-01-26
    相关资源
    最近更新 更多