【问题标题】:Reading lines in a file that end with \n读取文件中以 \n 结尾的行
【发布时间】:2019-04-02 08:45:32
【问题描述】:

当我这样做时

f = open("test.txt","r")
s = f.readline()
l = s.split[' ']

其中输入文件的内容为2 3\ns 的值为 ['2', '3\n']。有没有办法告诉 python 每行都以\n 结尾,因此它不应该读取它?

文件内容:

3 2\n
#1###2#\n
****#**\n
##*###*\n
#******\n
#*#O##*\n

我将为其他行做其他操作。但我仍然需要摆脱\n

【问题讨论】:

  • l = s.strip().split() ? strip() 将删除换行符
  • 你可以strip字符串中的字符
  • 但是它后面的行有字符并且再次以\n结尾。例如#@1\n

标签: python file io newline


【解决方案1】:

这里需要注意的是,除了文字'\n',每行末尾还有一个实际的\n(最后一行除外,它只有文字'\n'):

with open('test.txt') as f:
    print(f.readlines())
# ['3 2\\n\n', '#1###2#\\n\n', '****#**\\n\n', '##*###*\\n\n', '#******\\n\n', '#*#O##*\\n']

您需要同时使用文字 '\n' 和实际 \n 调用 .strip

with open('test.txt') as f:
    lines = [line.strip('\\n\n') for line in f]

print(lines)
# ['3 2', '#1###2#', '****#**', '##*###*', '#******', '#*#O##*']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多