python - Windows 与 Linux 文本文件读取

标签 python linux windows

问题是,我最近从 Windows 切换到 Ubuntu,我的一些用于分析数据文件的 python 脚本给我带来了错误,我不确定如何正确解决。

我当前仪器的数据文件输出如下:

[Header]

Various information w.r.t the instrument etc.

[Data]

Status,Code,Temperature,Field, etc.........

0,0,300, 0.013, etc...

所以基本上,这段代码的目的是读取数据文件并解析从 [Header] 到 [Data] 的所有信息,并开始在适当的行读取真实数据,无论标题如何排列为不同仪器有不同的标题。

f = open('file.dat')
lines = f.readlines()
i = 0
while (lines[i]!="[Data]\n"):
    i+=1
i = i + 2

此代码在 Windows 中运行良好,但在 Ubuntu 中,i 的值始终采用特定数据文件中的总行数。所以我知道问题在于“[Data]\n”行的处理。感谢您的帮助。

最佳答案

如果在默认文本模式下打开文件,则在 Windows 上\r\n 在读取时会转换为\n。在 Linux 上这不会发生。您的数据文件可能有\r\n,尤其是在 Windows 上创建的数据文件。请改用通用换行模式:

open(filename, 'rU')

关于python - Windows 与 Linux 文本文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41948897/

相关文章:

python - 数据框更新后如何刷新绘图?

linux - 如何使用 case 来识别 BASH 脚本中的特定模式

windows - 我可以在全局范围内使用 TortoiseGit 注册 PuTTY key 吗(不是每个存储库)?

c - malloc 的奇怪行为

python - 如何使用 Python 在 Windows 应用程序中获取右键单击上下文菜单?

windows - vim - 如何在复制文本时保持光标位置

Python 字典 "plus-equal"行为

python - 尽管文件显示在存储桶中,但 Blobstore 上传的 get_uploads 返回空列表

python - 如何创建多个具有相同功能的类

c - 注册为线程局部变量