【问题标题】:^M characters in exported file, converting to newlines导出文件中的 ^M 个字符,转换为换行符
【发布时间】:2013-07-19 17:50:58
【问题描述】:

我从 excel 导出了一个 CSV 以使用 python 进行解析。当我打开 vimmed CSV 时,我注意到它都是一行,换行符应该是 ^M 字符。

Name, Value, Value2, OtherStuff ^M Name, Value, Value2, OtherStuff ^M

我对文件进行了解析,以便我修改值并将其放入字符串中(在 csvreader 中使用“rU”模式)。但是,该字符串没有换行符。所以我想知道,有没有办法在这个 ^M 字符上拆分字符串,或者用 \n 替换它?

【问题讨论】:

  • 其实是\r

标签: python excel python-2.7 newline


【解决方案1】:

^M是vim显示windows行尾的方式

dos2unix 命令应该会为您解决这些问题:

dos2unix my_file.csv

这是由于 Windows/Unix 上的 EOL 格式不同。

在 Windows 上,它是 \r\n

在 Unix/Linux/Mac 上,它只是 \n

^M 实际上是 vim 向您显示 windows CR(回车)或 \r

python open 命令文档有更多关于处理通用换行符的信息:http://docs.python.org/2/library/functions.html#open

【讨论】:

    【解决方案2】:

    如果您使用的是 unix 系统,则有一个名为 dos2unix(及其对应的 unix2dos)的程序可以进行这种转换。

    但是,它和这样的东西几乎一样:

    sed -i -e 's/$/\r/' file
    

    【讨论】:

      猜你喜欢
      • 2010-10-23
      • 1970-01-01
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      • 1970-01-01
      • 2012-04-17
      相关资源
      最近更新 更多