【问题标题】:Python - Using Input From CSV File/Splitting a StringPython - 使用来自 CSV 文件的输入/拆分字符串
【发布时间】:2013-10-23 17:32:30
【问题描述】:

我对 Python 很陌生。我对所有词汇都没有掌握。

我当前的任务包括来自 CSV 文件的领先数据,格式为:

row1data1,row1data2,row1data3
row2data1,row2data2,row2data3
etc.

根据我收集到的信息,csv.reader/csvfile 内置模块从每一行创建一个字符串。我需要每行中的两个字符串,逗号是分隔符。

这是我当前的代码和输出。

代码:

import csv
with open('Sparrow.csv', 'r') as csvfile:
    CSVReader = csv.reader(csvfile, quotechar='|')
    for row in CSVReader:
       print( "TEXT" )
       print( "\n" )
       print( "TEXT INPUT REQUIRED:'%s'" % " ".join(row))
       print( "\n" )
       print( "TEXT INPUT REQUIRED:'%s'" % " ".join(row))
       print( "\n" )
       print( "TEXT" )       
       print( "\n" )
       print( "('%s'));" % " ".join(row))
       print( "\n" )
       print( "\n" )

输出

TEXT
TEXT INPUT REQUIRED:'row1data1 row1data2 row1data3'
TEXT INPUT REQUIRED:'row1data1 row1data2 row1data3'
TEXT
('row1data1 row1data2 row1data3'));


TEXT
TEXT INPUT REQUIRED:'row2data1 row2data2 row2data3'
TEXT INPUT REQUIRED:'row2data1 row2data2 row2data3'
TEXT
('row2data1 row2data2 row2data3'));

再次澄清,我需要拆分字符串,以便输出如下所示。

TEXT
TEXT INPUT REQUIRED:'row1data1'
TEXT INPUT REQUIRED:'row1data2'
TEXT
('row1data3'));


TEXT
TEXT INPUT REQUIRED:'row2data1'
TEXT INPUT REQUIRED:'row2data2'
TEXT
('row2data3'));

我知道这是一件很简单的事情,但我很想念,如果有任何帮助,我们将不胜感激。

【问题讨论】:

  • 您的代码中似乎有空格错误。
  • 我没有收到错误。一些信息从代码和输出中都被编辑了,但它不应该在语法上影响它。
  • 在 python 中的空白很重要。在您的示例中,您的打印语句与它们应该在其中的循环处于同一级别。
  • 现已修复,感谢您指出这一点。
  • 不得不改成for i in range(1,2,3)

标签: python string csv input


【解决方案1】:

应该这样做:

print( "TEXT" )
print( "\n" )
for i in range(1):
    print "TEXT INPUT REQUIRED:'%s'" % row[i]
print( "\n" )
print( "('%s'));" % row[2]

【讨论】:

  • 不,我没有意识到您在上一行中定义了该项目。我的错。
  • 实际上,它对每种数据类型重复定义的每一行 3 次。我需要每个数据输入一行。
  • 你能粘贴你的输出吗?
  • 我正在尝试让内联代码格式在这里工作,一分钟。
  • TEXT TEXT INPUT REQUIRED:'row1data1' TEXT INPUT REQUIRED:'row1data2' TEXT INPUT REQUIRED:'row1data3' TEXT INPUT REQUIRED:'row1data1' TEXT INPUT REQUIRED:'row1data2' TEXT INPUT REQUIRED:'row1data3' TEXT ('row1data1')); ('row1data2')); ('row1data3'));
【解决方案2】:

在打印之前拆分行

for row in CSVReader:
    a,b,c = row.split(',')
    print( "TEXT\n" )
    print( "TEXT INPUT REQUIRED:'%s'\n" % " ".join(a))
    print( "TEXT INPUT REQUIRED:'%s'\n" % " ".join(b))
    print( "TEXT\n" )       
    print( "('%s'));\n\n" % " ".join(c))

【讨论】:

  • 接收到的输出:AttributeError: 'list' object has no attribute 'split'
猜你喜欢
  • 2017-08-07
  • 1970-01-01
  • 2013-07-07
  • 2017-12-09
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
相关资源
最近更新 更多