在windows8.1中使用Sublime文本编辑器编写了一个python脚本,我只是尝试从osxyosemite的终端运行它,但是我得到了一个错误。你知道吗
我的错误发生在解析.CSV文件的第一行时。这是代码的一部分 lines是一个数组,其中每个元素都是作为字符串读取的文件中的行 我们用所需的分隔符分割字符串 我们跳过第一行,因为那是标题信息(else条件) 对于For循环中的最后一个索引,i=numlines-1=文件中的行数-2 我们只给i的值加一,因为文件中最后一行是空的
for i in range(numlines):
if i == numlines-1:
dataF = lines[i+1].split(',')
else:
dataF = lines[i+1].split(',')
dataF1 = list(dataF[3])
del(dataF1[len(dataF1)-1])
del(dataF1[len(dataF1)-1])
del(dataF1[0])
f[i] = ''.join(dataF1)
return f
csv文件中的所有行如下所示(除了标题行):
"08/06/2015","19:00:00","1","410"
因此,它将单行保存到一个数组中,其中每个元素对应于CSV文件行中由逗号分隔的4个值之一。然后我们取数组中的3元素“410”,并创建一个如下所示的列表
['"','4','1','0','"','\n']
(从windows运行时会发生) 但它看起来像
['"','4','1','0','"','\r','\n']
所以当我根据上面的代码连接这个字符串时,得到的是410而不是410。你知道吗
我的问题是:'\r'
这个术语是从哪里来的?在windows计算机上运行时,它在原始文件中不存在。一开始我以为是文本格式,所以我把CSV文件保存到UTF-8中,但没用。我试着将标签大小从4个空格改为8个空格,但没有成功。现在没有主意了。任何帮助都将不胜感激。你知道吗
谢谢
"\r"
是行分隔符。"\r\n"
也是一个行分隔符。不同的平台有不同的行分隔符。你知道吗一个简单的解决方法:如果您自己从文件中读取
line
,那么line.rstrip()
将删除行尾的空白。你知道吗正确的修复方法:使用Python's standard CSV reader。它将跳过空白行和注释,将正确处理引用字符串等。
此外,在处理长列表时,最好不要把它们看作索引寻址的“数组”,而使用“流”或“顺序读取”隐喻。你知道吗
因此,处理CSV文件的典型方法如下:
相关问题 更多 >
编程相关推荐