Python文件写入问题:行尾多余空格如何修复?
修复Python写入文件时行尾多余空格的问题
你的问题出在内层循环里,每个元素输出时都强制加了空格(end=" "),包括每个tuple的最后一个元素,这就导致每行末尾多了一个空格。
最简单的修复方式是用字符串的join方法,把tuple里的所有元素转成字符串后用空格连接,再一次性打印整行,这样不会产生末尾空格:
def write_1301(filename, tuple_list): with open(filename, "w") as file: # 用with语句自动关闭文件,更安全 for tup in tuple_list: # 将tuple中每个元素转为字符串,用空格连接后写入一行 print(' '.join(map(str, tup)), file=file)
为什么这个方法有效?
map(str, tup)会把tuple里的int、string、float都转成字符串类型,' '.join(...)会用空格把这些字符串拼接起来,只会在元素之间加空格,不会在末尾添加多余的空格,最后print默认会加换行符,刚好符合每行一个tuple的要求。
另外,推荐用with open(...)的写法,它会在代码块结束后自动关闭文件,避免手动close()可能出现的遗漏或错误。
测试你的示例数据,修改后的代码会生成符合预期的文件内容,每行末尾没有多余空格。
内容的提问来源于stack exchange,提问作者Hitanshu Jani
相关产品推荐
相关产品推荐

