python - 如何在windows机器上删除文本文件中的空白行
问题描述
我正在尝试删除文件夹中所有 YAML 文件中的所有空白行。我有多行只有 CRLF(使用 Notepad++),我似乎无法消除这些空白行。和往常一样,我在发布之前对此进行了研究,但我似乎无法使其正常工作。
import glob
import re
path = 'C:\\Users\\ryans\\OneDrive\\Desktop\\output\\*.yaml'
for fname in glob.glob(path):
with open(fname, 'r') as f:
sfile = f.read()
for line in sfile.splitlines(True):
line = sfile.rstrip('\r\n')
f = open(fname,'w')
f.write(line)
f.close()
这是记事本++中的一个视图
我想删除此处显示的第一行以及所有其他空白行。谢谢。
解决方案
您无法写入当前正在读取的文件。此外,您还可以file.splitlines()
从每一行中删除内容-这样您将删除所有 \r\n
内容-不仅是空行中的内容。以新名称存储内容,然后删除/重命名文件:
创建演示文件:
with open ("t.txt","w") as f:
f.write("""
asdfb
adsfoine
""")
从中加载/创建新文件:
with open("t.txt", 'r') as r, open("q.txt","w") as w:
for l in r:
if l.strip(): # only write line if when stripped it is not empty
w.write(l)
with open ("q.txt","r") as f:
print(f.read())
输出:
asdfb
adsfoine
(您需要换strip()
行以查看它们是否包含空格和换行符。)
有关重命名/删除,请参阅 fe如何使用 Python 重命名文件和删除文件或文件夹
import os os.remove("t.txt") # remove original os.rename("q.txt","t.txt") # rename cleaned one
推荐阅读
- php - 如何在 Symfony 5 的其他目录中自动注册“控制器作为服务”
- c# - c#互操作中的Excel多列过滤器
- java - 具有可选空值和不区分大小写的 Spring Query
- python - 训练模型后无法提取单个预测
- python - 我可以检查一个列表是否包含另一个列表中的任何项目吗?
- dart - 如何全局捕获未处理的 Future 错误?
- node.js - Strapi 使用 SendGrid“内部错误”发送电子邮件
- python - 命令中的 python -m 前缀如何工作?
- azure - 从 LogicApp 中的 json 获取值
- java - 使用 brew 构建 OpenCV 时设置目标 java 版本