如何将Python字典列表按指定对齐表格格式写入txt文件
实现字典列表写入对齐TXT表格的正确代码
原有代码问题
print()函数无返回值,赋值给e的内容永远是None,无法得到要写入的行内容- 未做列对齐格式化,也没有写入表头,且仅执行了一次写入操作,没有把所有行内容写入文件
正确实现代码
# 原始字典列表 dict_list = [ {'Name': 'Syed', 'Age': 17.0, 'DOB': 38034.0, 'Blood group': 'O+', 'mobile no:': 919496589636.0}, {'Name': 'Saurav', 'Age': 16.0, 'DOB': 38391.0, 'Blood group': 'A+', 'mobile no:': 915452587965.0}, {'Name': 'Jinish', 'Age': 18.0, 'DOB': 37654.0, 'Blood group': 'O+', 'mobile no:': 916356254128.0}, {'Name': 'kiran', 'Age': 17.0, 'DOB': 38034.0, 'Blood group': 'O+', 'mobile no:': 919496589636.0}, {'Name': 'Robin', 'Age': 16.0, 'DOB': 38391.0, 'Blood group': 'A+', 'mobile no:': 915452587965.0}, {'Name': 'Ravi', 'Age': 18.0, 'DOB': 37654.0, 'Blood group': 'O+', 'mobile no:': 916356254128.0} ] # 使用with上下文管理器自动管理文件关闭,避免资源泄漏 with open("D:\\DSUsers\\uie41986\\BIG.txt", "w", encoding="utf-8") as f: # 写入表头,设置各列固定宽度左对齐 f.write(f"{'Name':<10}{'Age':<8}{'DOB':<12}{'Blood group':<15}{'mobile no:'}\n\n") # 遍历每一行数据格式化写入 for item in dict_list: name_col = f"'{item['Name']}'" blood_col = f"'{item['Blood group']}'" row = f"{name_col:<10}{item['Age']:<8}{item['DOB']:<12}{blood_col:<15}{item['mobile no:']}\n" f.write(row)
效果说明
代码通过f-string的左对齐规则(<符号)设置每列的固定占用宽度,你可以根据实际内容长度调整宽度数值(比如<10表示该列占10个字符宽度),即可得到符合要求的对齐表格。
内容的提问来源于stack exchange,提问作者Jinish Thomas
相关产品推荐
相关产品推荐

