如何将导入的列表无括号引号写入TXT文件?
解决列表写入TXT文件时带括号和引号的问题
问题出在你直接将列表变量嵌入字符串时,Python会输出列表的默认字符串表示(调用了repr()方法),所以才会带上方括号和引号。要解决这个问题,你需要把列表元素转换成用分隔符连接的普通字符串。
核心解决方法
使用字符串的join()方法,把列表元素拼接成无括号引号的字符串:
- 如果列表元素都是字符串:
', '.join(your_list) - 如果列表包含非字符串元素(比如数字):
', '.join(str(item) for item in your_list)
修改后的代码
把你代码中写入文件的部分替换成下面的形式:
elif user_diet_yn in no_choices: clear() while True: single_diet = input("\nWhat diet would you like to follow?: ") if single_diet in aip_alt: clear() print("\nYour diet will be added to your Personal Diet Plan.") with open(file_name, mode="a") as f: # 用join把列表转成逗号分隔的字符串 f.write(f'\n\nAIP Diet:\nAllowed: {", ".join(aipallowed)}\n\nNot allowed: {", ".join(aipnotallowed)}') input("\nPress Enter to return to Main Menu!") break elif single_diet in paleo_alt: clear() print("\nYour diet will be added to your Personal Diet Plan.") with open(file_name, mode="a") as f: f.write(f'\n\nPaleo Diet:\nAllowed: {", ".join(paleoallowed)}\n\nNot allowed: {", ".join(paleonotallowed)}') input("\nPress Enter to return to Main Menu!") break elif single_diet in fodmap_alt: clear() print("\nYour diet will be added to your Personal Diet Plan.") with open(file_name, mode="a") as f: f.write(f'\n\nFodMap Diet:\nAllowed: {", ".join(fodmapallowed)}\n\nNot allowed: {", ".join(fodmapnotallowed)}') input("\nPress Enter to return to Main Menu!") break else: clear() print(f'\n"{single_diet}" not in data base! Check your spelling!')
可选优化:提升可读性
如果希望允许/禁止的食物列表每行显示一个,可以用换行符加前缀来拼接:
# 比如Allowed部分改成每行一个带破折号的项目 f.write(f'\n\nAIP Diet:\nAllowed:\n - {"\n - ".join(aipallowed)}\n\nNot allowed:\n - {"\n - ".join(aipnotallowed)}')
这样写入文件后格式会更清晰:
AIP Diet: Allowed: - 食物1 - 食物2 Not allowed: - 食物3 - 食物4
内容的提问来源于stack exchange,提问作者Jennie Lembäck
相关产品推荐
相关产品推荐

