Gra*_*y M 0 python csv if-statement
我正在开发一个简单的应用程序,它读取发送的CSV文件,并根据列中的数据点生成一些结果.Data.csv:
Something, everything, 6, xy
Something1, everything1, 7, ab
Something2, everything2, 9, pq
Run Code Online (Sandbox Code Playgroud)
我打开文件如下,
FileOpen = opne('../sources/data.csv', 'rU')
FileRead = csv.reader(FileOpen, delimiter = ',')
FileRead.next()
for row in FileRead:
#This does not work
if row[0] == 'something' and row[1] == 'something1':
print row[2]
#This works
if row[0] == 'something' and row[3] = 'xy':
print row[2]
Run Code Online (Sandbox Code Playgroud)
上面的代码没有显示任何内容.但是如果我在if条件中使用row [0]和row [3],那么效果很好.所以问题在于第1,2列.但是0和3列工作正常.CSV的文件格式错误了吗?我遵循microsoft过程从excel文件创建csv.
使用和命名row是完全正确的.主要问题是文件中的空白区域.如果我print row,我明白了
['Something', ' everything', ' 6']
^ ^
Run Code Online (Sandbox Code Playgroud)
解决方案最有可能处理
Dialect.skipinitialspace
Run Code Online (Sandbox Code Playgroud)When True, whitespace immediately following the delimiter is ignored. The default is False.
从这里https://docs.python.org/2/library/csv.html#dialects-and-formatting-parameters
您在构造函数中传递此选项,如下所示:
FileRead = csv.reader(FileOpen, delimiter = ',', skipinitialspace=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
572 次 |
| 最近记录: |