Python如何将两个匹配列表按制表符分隔写入txt文件
问题原因
你现有的代码逻辑是将两个列表的元素交替存入新列表后直接转字符串写入文件,最终输出会包含列表的方括号、逗号等语法符号,且没有实现按行分组、制表符分隔的需求。
注意点
你定义的b列表中2/3/2021会被Python识别为除法运算,最终得到浮点数结果,需要用引号包裹改为字符串格式"2/3/2021"才能输出预期的日期文本。
正确实现代码
a = ["rate", "date", "population"] b = [4, "2/3/2021", 1523] with open("data.txt", "w") as outfile: # 第一行写入a的元素,用制表符分隔,末尾加换行 outfile.write('\t'.join(map(str, a)) + '\n') # 第二行写入b的元素,用制表符分隔 outfile.write('\t'.join(map(str, b)) + '\n')
如果后续需要批量写入多行列表,也可以用通用遍历逻辑:
a = ["rate", "date", "population"] b = [4, "2/3/2021", 1523] all_lines = [a, b] with open("data.txt", "w") as outfile: for line in all_lines: outfile.write('\t'.join(map(str, line)) + '\n')
代码说明
map(str, 列表)会将列表中所有元素转为字符串类型,避免数字元素拼接时报错'\t'.join(xxx)会将传入的可迭代对象中的所有元素用制表符\t拼接为单个字符串- 每行末尾加
\n实现换行效果
内容的提问来源于stack exchange,提问作者Andrew Swainskeren
相关产品推荐
相关产品推荐

