Python中如何给字典值末尾加分号并按指定格式写入文件?
解决方法
append()是列表的专属方法,没法直接给字符串或数字末尾加分号——字符串是Python里的不可变类型,数字更是没有这个方法,所以直接用append(";")肯定无效。
你需要先把字典里的每个值统一处理成带分号结尾的字符串,再按目标格式拼接内容,最后写入文件。
完整代码示例
import random # 原始字典 Cricket = { 'CricketSport {': { 'Bat': "White;", 'Ball': "Red;", 'Wickets': random.choice(range(1, 3)), } } # 提取需要处理的子字典 target_dict = Cricket['CricketSport {'] # 构建输出内容的每一行 output_content = ["CricketSport {"] for key, val in target_dict.items(): # 把值转成字符串,确保末尾有分号 val_str = str(val) if not val_str.endswith(';'): val_str += ';' # 按格式拼接键值对 output_content.append(f"{key}:{val_str}") output_content.append("}") # 把列表转成带换行的文本 final_text = '\n'.join(output_content) # 写入文件 with open('cricket_result.txt', 'w', encoding='utf-8') as f: f.write(final_text)
代码说明
- 处理分号逻辑:不管原值是字符串还是数字,先转成字符串,再判断是否已有分号结尾——避免像
White;这种本来就带分号的内容变成White;;。 - 格式拼接:严格按照你要的结构生成内容,开头写
CricketSport {,每个键值对单独一行,最后补结尾的}。 - 文件写入:用
with语句自动管理文件流,不用手动关闭文件,更安全。
运行后生成的文件内容完全符合你的期望:
CricketSport { Bat:White; Ball:Red; Wickets:2; }
内容的提问来源于stack exchange,提问作者abhishekravoor
相关产品推荐
相关产品推荐

