Python优先字符串,每个字符之间有空格

Python优先字符串,每个字符之间有空格,python,powershell,Python,Powershell,我有一个简单的python脚本: with open("records.csv", "r") as f: for line in f: print line records.cvs包含许多行,如下所示 ,0.055,,,,,109.889456433119.043269058128.455997141,,,-0.607526459169,-1.28987216622,-1.36255539212,-0.0783128865694,-0.07459223352488,-0

我有一个简单的python脚本:

with open("records.csv", "r") as f:
    for line in f:
        print line
records.cvs
包含许多行,如下所示

,0.055,,,,,109.889456433119.043269058128.455997141,,,-0.607526459169,-1.28987216622,-1.36255539212,-0.0783128865694,-0.07459223352488,-0.0722692557059,0.325311331044,0.61140286319,0.050961014105,0.7195563734

但是,我们上面的脚本在字符之间用空格打印以下输出

■, 0 . 0 5 5 , , 1 0 9 . 8 8 9 4 5 6 4 3 3 , 1 1 9 . 0 4 3 2 6 9 0 5 8 , 1 2 8 . 4 5 5 9 9 7 1 4 1 , , - 0 . 6 0 7 5 2 6 4 5 9 1 6 9 , - 1 . 2 8 9 8 7 2 1 6 6 2 2 , - 1 . 3 6 2 5 5 5 3 9 2 1 2 , - 0 . 0 7 8 3 1 2 8 8 6 5 6 9 4 , - 0 . 0 7 4 5 9 2 3 3 5 2 4 8 8 , - 0 . 0 7 2 2 6 9 2 5 5 7 0 5 9 , 0 . 3 2 5 3 1 1 3 3 1 0 4 4 , 0 . 6 1 1 4 0 2 8 6 3 1 , 0 . 0 5 0 9 6 6 1 0 1 4 1 0 5 , 0 . 719556483734


为什么输出有空格,我们如何删除它们。

也许您的意思是使用
csv.reader

import csv

with open("records.csv", "r") as f:
    csvin = csv.reader(f)
    for line in csvin:
        print line
将是CSV文件中每一行的列列表,您可以按自己的意愿处理这些列(例如,可能将每一行转换为整数/浮点)

请先尝试筛选出无可打印字符

重新导入
,并在使用语句导入后,更改为:

lines = (re.sub('[^-0-9.,]', '', line) for line in f)
csvin = csv.reader(lines)

也许您想使用
csv.reader

import csv

with open("records.csv", "r") as f:
    csvin = csv.reader(f)
    for line in csvin:
        print line
将是CSV文件中每一行的列列表,您可以按自己的意愿处理这些列(例如,可能将每一行转换为整数/浮点)

请先尝试筛选出无可打印字符

重新导入
,并在使用语句导入后,更改为:

lines = (re.sub('[^-0-9.,]', '', line) for line in f)
csvin = csv.reader(lines)

我无法复制你的结果。我创建了一个文件,其中有许多行与您示例中的行相同,但尽管它在行之间打印空行(一行用于行尾,另一行用于
打印
),但字符之间没有空格


请注意打印行开头的有趣的方形符号?文件的编码可能有问题。

我无法重现您的结果。我创建了一个文件,其中有许多行与您示例中的行相同,但尽管它在行之间打印空行(一行用于行尾,另一行用于
打印
),但字符之间没有空格


请注意打印行开头的有趣的方形符号?文件的编码可能有问题。

打印行,
而不是
打印行
?无法复制。它打印行与行之间的空行,但字符之间没有空格。那个有趣的方形符号是什么?可能是编码问题?@segfolt
print line,
无法解决问题。@tobias\k你说得对。似乎编码设置为
Little-Endian
。请回答您的意见,我会接受您的回答。@code>是否愿意解释否决票?
打印行,
而不是
打印行
?无法复制。它打印行与行之间的空行,但字符之间没有空格。那个有趣的方形符号是什么?可能是编码问题?@segfolt
print line,
无法解决问题。@tobias\k你说得对。似乎编码设置为
Little-Endian
。把你的评论作为答案,我会接受它。@RandomDownvoter是否愿意解释否决票?我以前试过,但遇到了错误
\u csv。错误:行包含空字节
,但我会继续查找。@andre可能值得尝试过滤掉那些不是
-
的内容,
或一个
数字
,只要使用它们……我有了正确的编码,您的初始解决方案就可以很好地工作。我以前尝试过这个方法,但遇到了错误
\u csv。错误:行包含空字节
,但我会继续查找。@andre可能值得尝试过滤掉那些不是
-
的内容,
或一个
或一个
数字
,只需使用这些…您的初始解决方案工作得非常好,现在我有了正确的编码。