Python读取文件求和返回None及删除多余换行符解决办法
问题解答
1. 删除文件中的多余换行符
处理逻辑很简单,读取文件内容后过滤掉空行/多余换行,再写回文件即可,Python实现参考:
with open("目标文件路径", "r") as f: # 按行读取,自动识别所有系统类型的换行符,同时过滤空行 lines = [line.strip() for line in f if line.strip()] with open("目标文件路径", "w") as f: f.write("\n".join(lines))
如果不需要写回文件,仅需在读取时处理多余换行,直接调用字符串的splitlines()方法即可,比手动strip("\n")+split("\n")的兼容性更好,能同时适配Windows、Linux、macOS的不同换行符格式。
2. 解决函数运行后额外输出None的问题
问题原因
Python中所有函数如果没有显式声明return返回值,默认会返回None。你当前的调用方式肯定是类似print(addIntegersFromFile("文件路径")):函数内部已经执行了print(total)输出总和,外层又把函数的默认返回值None打印了一遍,就会出现先输出总和、再输出None的情况。
解决方法
二选一即可:
- 方法1:调用函数时不要套外层的
print,直接写addIntegersFromFile("你的文件路径")运行即可 - 方法2:修改函数,把末尾的
print(total)改成return total,此时再用print(addIntegersFromFile("你的文件路径"))就只会输出总和
优化后的参考代码
def addIntegersFromFile(file_path): total = 0 with open(file_path, 'r') as f: # 直接按行拆分自动处理换行,不需要手动处理换行符 for line in f: strip_line = line.strip() # 加空行判断,避免文件里的多余空行导致运行报错 if strip_line: total += float(strip_line) return total # 调用示例 print(addIntegersFromFile("你的数字文件路径"))
内容的提问来源于stack exchange,提问作者PinoyNaHilaw
相关产品推荐
相关产品推荐

