如何将多行命令行参数读入python2 CSV阅读器

时间:2013-07-11 07:00:40

标签: python csv command-line python-2.6

我正在测试一个Python文件,它将CSV文件的文本作为命令行参数。 CSV是一个标准的Excel CSV文件,其中包含项目的','分隔符,大概是'\r\n'行结尾。

问题是我需要将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是正确的,但我似乎没有使用正确的方法。

有什么想法吗? 谢谢,先生!

1 个答案:

答案 0 :(得分:0)

为什么不直接从csv文件中读取这些行?如:

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

只需将'print line'替换为您自己的功能。如果您确实需要手动复制csv文件中的每一行,您可以尝试在传递给阅读器之前将每行分成'\ r \ n'。

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