【问题标题】:Python weird new line character in text file文本文件中的Python奇怪的换行符
【发布时间】:2020-05-24 18:06:56
【问题描述】:

我有另一个程序(我没有源代码)写入文本文件,然后当我尝试像这样读取文本文件时,

with open("domain.com/alive_domains.txt") as f:
    for line in f:
        print(line)

输出是这样的:(这是直接从 pycharm 的控制台窗口复制和粘贴的)

http://stage.oidc.payments.domain.com

https://oidc.help.domain.com

https://search.domain.com

https://oidc.payments.domain.com

https://stage.oidc.payments.domain.com

http://stage.oidc.help.domain.com

https://stage.oidc.help.domain.com

由于某种原因,有一些奇怪的换行符,我认为它们不是换行符

我试图通过做类似的事情来解决这个问题


abc = "abcdefghijklmnopqrstuvwxyz:/."

def fix_string(s):
    new_s = ""
    for char in s:
        if char in abc:
            new_s += char
    return ''.join(new_s)

with open("domain.com/alive_domains.txt") as f:
    for line in f:
        print(fix_string(line))

我得到了相同的输出..


我尝试谷歌搜索,发现了这个正则表达式

   with open("domain.com/alive_domains.txt") as f:
        for line in f:
            line = re.sub("[^a-z0-9/.:]+","", line, flags=re.IGNORECASE)
            print(fix_string(line))

再一次,它给了我与新行相同的输出

我尝试逐行读取的任何其他文件都不会这样做。有没有办法识别奇怪的字符?如果有的话

【问题讨论】:

  • 如果您认为从文件中读取了一个奇怪的字符,请尝试运行 [ord(c) for c in line] 并检查超出预期 ASCII 范围的值。
  • @Brian 好的,刚刚试过,似乎没问题,它似乎有自己的线路(?)当我循环遍历线路时,它是每隔一行,所以第 1 行将是URL,然后第 2 行是空白的,即使我尝试执行 [ord(c) for c in line],它也会给我一个空数组,其中没有任何项目
  • 即使我在文件的第 2 行没有看到空行
  • 但是我可以检查行的长度...我猜

标签: python string utf


【解决方案1】:

您从输入文件中读取的每一行都是一个已由换行符终止的字符串。当您将这些字符串写入输出文件时,print 会在输出中添加另一个换行符,从而产生双换行符。

要抑制这种行为,请编写

print(some_string, end='')

或者,如果您不需要print的附加功能,您可以直接通过写入文件句柄

f.write(some_sring)

【讨论】:

  • 对,但是如果你看一下我从 pycharm 命令行的输出,它是 print 的一个新行,然后是其他地方的另一个新行
  • @leak 您从文件中读取的每一行都是一个已由换行符终止的字符串。当您将这些字符串写入输出文件时,print 会在输出中添加另一个换行符,从而产生双换行符。我更新了我的答案以使这一点更清楚
  • 我之前尝试过 print(line, end="") ,我只是重试它以确保它是我之前得到的,而不是像以前那样做两个新行,它只是将它们打印在全部一行 IE http://stage.oidc.payments.domain.comhttps://oidc.help.domain.com @Brian
  • 很奇怪,我从没见过这个。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-03-15
  • 2020-01-02
  • 2019-01-20
  • 1970-01-01
  • 2021-03-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多