【问题标题】:Python strip() don't work for new linesPython strip() 不适用于新行
【发布时间】:2013-10-04 08:18:09
【问题描述】:

从测试文件中获取数据后,我尝试删除“\n”,并且在输出中看到新行。

users_data = open('users.txt', 'r')
line = users_data.readline()
while line:
        line.strip('\n')
        metode, data = line.split(":")
        d = {} #for debuging
        d[metode]=data
        print(d)
        line = users_data.readline()

我将它们放入字典中进行调试,然后我得到了:

{'gender': 'f\n'}
{'name': 'elise\n'}

我是不是做错了什么?

【问题讨论】:

  • 当然你通常不会使用readline()。只需使用for line in users_data:
  • 为什么不呢?因为它会将所有文件存储在内存中?我的程序读取了一些行并创建了一个用户。然后阅读更多行并创建更多用户。用读取线我可以跟踪这个。
  • 它就是这么“老式”并且包含更多代码。您可以遍历文件对象。查看文档中的“Methods of File Objects”。
  • 但问题是,我是否会循环到文件中间然后结束循环(不会关闭文件)。然后我将再次开始循环 - 它将从头开始?

标签: python text output


【解决方案1】:

由于字符串是不可变的,所以 line.strip() 根本不会做任何事情。 strip() 不是就地操作,它会返回一个新的字符串。

line = line.strip()

是你想要的。

【讨论】:

    猜你喜欢
    • 2022-01-14
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多