Python:如何删除.ADC文件末尾空换行行?已尝试方法未成功
解决.ADC文件末尾空行删除问题
我来帮你排查问题并修正代码!你的代码里有几个关键问题导致没成功:
- 文件打开方式错误:你同时以默认读模式打开了同一个文件两次,不仅读模式的文件对象没有写入权限,要是第二个文件用写模式打开还会直接清空原文件,导致还没读取内容就丢失数据。
- 处理逻辑不准确:你只是去掉了最后一行的换行符,但如果最后一行本身就是空的(仅包含换行符),你需要的是删除这一行,而非修改它。
下面是修正后的代码,我会逐行解释:
import os directory = "你的目标目录路径" # 替换成你的实际目录路径 for filename in os.listdir(directory): if filename.endswith(".ADC"): file_path = os.path.join(directory, filename) # 先读取文件所有内容,保留每行原有格式 with open(file_path, 'r', encoding='utf-8') as infile: lines = infile.readlines() # 检查文件是否有内容,且最后一行是否为空行 if lines: # 通过strip()判断最后一行是否仅含空白/换行符 if not lines[-1].strip(): # 删除最后一行空行 lines = lines[:-1] # 将处理后的内容写回原文件 with open(file_path, 'w', encoding='utf-8') as outfile: outfile.writelines(lines)
代码关键点说明:
- 分阶段读写文件:先把所有内容读入内存处理,再打开文件写入,避免同时读写的冲突。
- 精准判断空行:用
strip()可以兼容不同换行符(\n或\r\n),准确识别全空白的空行。 - 指定编码:加上
encoding='utf-8'避免跨系统的编码问题,如果你的.ADC文件是其他编码(比如GBK),替换成对应编码即可。
如果担心误操作,可以在删除空行后加一行打印日志,方便追踪处理情况:
print(f"已处理文件: {filename} - 移除了末尾空行")
内容的提问来源于stack exchange,提问作者Simplymcbook
相关产品推荐
相关产品推荐

