2013-07-11 73 views
0

我正在測試一個將CSV文件的文本作爲命令行參數的Python 2腳本。 CSV是一個標準Excel CSV文件,','分隔符用於項目,大概'\r\n'用於結尾。如何將多行命令行參數讀入python2 CSV閱讀器

問題是我需要將CSV文本作爲一行傳遞給腳本,以便它將字符串識別爲單個參數。爲了做到這一點,我在記事本中打開了CSV,並用'\r\n'替換了所有新行,這使我能夠成功地將測試讀入我的腳本中。但是,當我嘗試從字符串中創建一個csv.reader對象時,csv.reader只看到一行,我希望看到多行。

考慮下面的CSV字符串例如:

The,quick,brown,fox\r\njumps,over,the,lazy,dog 

我希望下面幾行:

The,quick,brown,fox 
jumps,over,the,lazy,dog 

而是我剛結束了一個單行:

The,quick,brown,fox\r\njumps,over,the,lazy,dog 

一旦我從命令行捕獲字符串,我使用以下內容將其加載到csv.reader

input_str = self.GetCsvStringFromInput() 
input_reader = csv.reader(StringIO.StringIO(input_str)) 

我使用Windows,所以我推測,\r\n是正確的,但我似乎沒有要使用正確的方法。

任何想法? 謝謝!

回答

0

爲什麼不直接從csv文件讀取行?如:

with open('D:/file-1.csv','r') as csvfile: 
     creader=csv.reader(csvfile, delimiter=',') 
     for line in creader: 
      print line 

只是用你自己的功能替換'打印線'。如果您確實需要手動複製csv文件中的每一行,則可以在傳遞給閱讀器之前嘗試將每行分隔'\ r \ n'。

for line in 'The,quick,brown,fox\r\njumps,over,the,lazy,dog'.split('\r\n'): 
    print line