2011-06-01 91 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