在 Python 中,调用例如 temp = open(filename,'r').readlines()
会生成一个列表,其中每个元素都是文件中的一行。但是,这些字符串末尾有一个换行符,这是我不想要的。
如何在没有换行符的情况下获取数据?
原文由 Yotam 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 中,调用例如 temp = open(filename,'r').readlines()
会生成一个列表,其中每个元素都是文件中的一行。但是,这些字符串末尾有一个换行符,这是我不想要的。
如何在没有换行符的情况下获取数据?
原文由 Yotam 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答861 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
您可以使用
str.splitlines
读取整个文件并拆分行:或者您可以手动删除换行符:
注意: 最后一个解决方案仅在文件以换行符结尾时才有效,否则最后一行将丢失一个字符。
这个假设在大多数情况下都是正确的(特别是对于由文本编辑器创建的文件,它们通常 会 添加一个结束换行符)。
如果要避免这种情况,可以在文件末尾添加换行符:
或者更简单的替代方法是
strip
换行符:甚至,虽然很不可读:
它利用了
or
的返回值不是布尔值,而是被评估为真或假的对象这一事实。readlines
方法实际上等价于:由于
readline()
保留换行符readlines()
保留它。注意: 为了与
readlines()
writelines()
方法 不 添加结束换行符,因此f2.writelines(f.readlines())
产生f2
7c7352cabb74fa 中的f
的精确副本---
。