python - 如何使用换行符写入文件并避免空行
问题描述
我正在尝试将编码数据写入文件并用换行符分隔每次运行。但是,执行此操作时,每次运行之间都会有一个空行 - 如下所示。
使用 .rstrip()/.strip() 仅在读取文件时才真正起作用-显然,在写入文件时不能直接使用它,因为它将所有数据写入单行。
cFile = open('compFile', 'w')
for i in range(num_lines):
line = validLine()
compressedFile.write(line + "\n")
cFile.close()
cFile = open('compFile', 'r')
for line in cFile:
print(line)
# Empty space output:
023
034
045
# Desired output:
023
034
045
解决方案
如果您查看文本文件,我认为您已经做了您想做的事。
请注意,python 也会读取文件末尾的 \n ,并且 print() 在打印行的末尾创建一个换行符。
在您的情况下,这意味着您的文件应该看起来像
023\n
034\n
045\n
打印时,您首先读取 023\n ,然后像 python 使用 print() 函数一样,将 \n 附加到您的行中。
然后你有 023\n\n 你在你的控制台。但是在文件中你有你想要的。
如果您只想打印不带换行符,您可以使用
import sys
sys.stdout.write('.')
推荐阅读
- javascript - 如何在 Charts.js 的工具箱中显示图例?
- reactjs - 带有基于类的组件的 Redux Creatslice
- javascript - javascript中的回调方法
- react-native - 如何创建 React Native iOS 项目并在 Docker 中运行?
- spring - 由于配置服务器,执行器无法解析变量?
- vue.js - Kendo Grid 是 footerCell 在 Vuejs 中不起作用
- sql - 允许空值时的最小长度约束
- nginx - 如何从 nginx 中的外部身份验证服务器获取自定义标头
- javascript - 为什么 .on('change', handler) 不能在铬中工作,但 .change() 可以?
- rust - Rust:安全的单线程 TCP 服务器