2013-07-11 42 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