使用numpy.loadtxt加载数据并使用命令

时间:2018-02-06 10:15:04

标签: python numpy vim sed

这是我的第一个问题。

我尝试用Python加载数据文件。 文件demo.txt与以下内容类似。

12,23,34.5,56,

78,29,33,

44,55,66,78,59,100

(文件中的行数不同,每行中的列数可能不同。我需要处理许多数据文件)

numpy.loadtxt("demo.txt",delimiter=",") 

提供错误消息" could not convert string to float:"。

要解决此问题,我尝试使用命令

sed -i -e 's/,\n/,/g' demo.txt

删除每行末尾的换行符,将所有行合并为一行。但它失败了。

但是,在VIM中,可以使用":s /,\ n /,/ g"删除换行符。

因此,我的问题是

  1. 是否可以在不修改文件的情况下在python中加载数据文件?

  2. 如果没有,我怎么能使用" sed"等命令。 (因为我需要将此命令放入我的脚本来处理一堆文件,需要一个shell命令,例如" sed")以删除每行末尾的换行符以将所有行合并为一个单线?如果没有所有行的换行符,我可以轻松地使用numpy.loadtxt读取数据。

  3. 致以最诚挚的问候,

    以平

1 个答案:

答案 0 :(得分:0)

使用tr -d '\n'删除文件中的所有换行符:

$ echo -e "some\nfile\nwith\n\newlines" > file_with_newlines
$ cat file_with_newlines 
some
file
with

ewlines
$ cat file_with_newlines | tr -d '\n' > file_without_newlines
$ cat file_without_newlines 
somefilewithewlines$ 

我不知道这是否真的可以帮助您解决numpy问题,但它会从文件中删除所有(UNIX)换行符。