2011-06-01 90 views
3

我desperatly试图分裂使用Python,但我需要解析字符串文本文件中的字符串是有点棘手:麻烦分裂与Python

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

我做了以下内容:

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

这实际上应该使工作吧?

好现在棘手的问题:我有一个包含内部逗号像下面这样一些领域:

"(CONTRACTS OF 5,000 BUSHELS)" 

使用我的代码,脚本还会在2

分裂这个领域我怎样才能请求python使用逗号作为分隔符,但是当它们被“”括起来时不能使用?

预先感谢您为您的回答

Crak

+0

为什么你在你的代码示例'pass'? – 2011-06-01 13:16:53

+0

似乎解决方案是在问题:'文本文件是一个逗号分隔的数据文件.'我很困惑,因为文件扩展名是'.txt' ...有一天几乎没有什么东西:)感谢。 – Crak 2011-06-01 13:58:21

回答

5

CSV文件应该以csv处理。

10

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

+0

似乎很好的建议,但在这种情况下如何使用csv模块的一个例子将真正改善这个答案。 – 2011-06-01 12:32:05

+3

官方文档中有很多例子,我不认为在这里复制其中的一个会有所作为。 – 2011-06-01 12:34:13

+0

也许是因为我从来没有用过一个csv库,在阅读文档几分钟后让我感到困惑。你是对的,你已经提供了必要的。但如果这是我的问题,那对我来说会有所作为。 – 2011-06-01 12:41:21

4

可以使用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 
+0

我会upvote这个答案,如果它包含一些有意义的地方评论。 – 2011-06-01 13:45:56

+0

该问题没有具体说明他在做什么 – 2011-06-01 14:39:39

+0

他正在分割逗号,但不能用引号内的逗号分割。 – 2011-06-01 14:49:44