linux - 文件中的 Python 匹配行

标签 linux windows text text-files python-2.x

我有以下文件,input.txt

= TITLE =
{{{
Leave Alone
}}}

{{{
Change Me First
}}}

{{{
Change Me second
}}}

和 Python 代码

obj = file("input.txt")
for i in obj:
    i = i.replace("\n", "")
    if i == "{{{":
        print i
    else:
        pass

问题是,如果我将文本复制并粘贴到 Windows 记事本中,将文件上传到 Linux 服务器并运行脚本,没有任何反应。如果我将文本直接复制并粘贴到服务器上的 Vi 中并保存 input.txt,它会按预期工作。

我知道 Windows 和 *nix 文本编辑器处理换行符的方式不同(Windows 文件在 Linux 上显示额外的换行符,而 Linux 文件在 Windows 记事本上都显示为一行),这可能是问题的一部分吗?

最佳答案

您真的需要“严格”将 ending \n 替换为空字符串吗?我建议您替换代码中的行:

i = i.replace("\n", "")

i = i.rstrip() # or i.rstrip('\r\n')

关于linux - 文件中的 Python 匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44876417/

相关文章:

c++ - C++定时器的实现方法

Linux:匹配一个表达式,然后删除整个相关 block

linux - 无法启动虚拟机 - Azure 门户错误

c++ - 在不使用条件的情况下挂起 pthreads

windows - 是什么使 NTDLL!_KiUserApcDispatcher 跳转到不属于进程中模块的地址?

windows - 如何访问位于 Windows 上具有保留系统名称(如 "CON")的文件夹中的本地文件?

java - 在 JEditorPane 中实现即时文本样式

c++ - 在 Windows 上用 C++ 打开文件的不同方法?

html - 如何在图片旁边放置文字?

C - 使用 ncurses 获取中性背景