|
发表于 2020-8-14 21:01:14
|
显示全部楼层
本楼为最佳答案
看看这个可行不:
- # 定义字典
- word_dict = {}
- # 读取文件内容
- with open('a.txt',encoding='utf-8') as file:
- # 切割文件编号与单词
- temp = [i.split() for i in file.read().splitlines()]
- # 通过 for 循环将对应切割后的数据取出
- for key,value in temp:
- # 这里转为 int 型是为了在写入 b 文件时候能进行排序后写入 b 文件
- key = int(key)
- # 判断若键已经在字典中,就添加入对应的值列表中去
- if key in word_dict:
- word_dict[key].append(value)
- continue
- # 反正直接创建个键值对
- word_dict[key] = [value]
- # 新建写入 b 文本文件
- with open('b.txt','w',encoding='utf-8') as file:
- # 读取字典对应键值,转为列表,以便排序
- item = list(word_dict.items())
- # 这里对编号进行列表排序
- item.sort(key=lambda x:x[0])
- # 最后循环对应的值写入文件中去
- for key,value in item:
- # 这里因为上个文件读取时候转化为了 int 型了,但是写入文件只能为 str 字符串,所以转化为字符串
- key = str(key)
- # 最终写入文件中去,\t 进行分隔,最后加 \n 是为了换行,防止写入一行
- file.write(key+'\t'+'\t'.join(value)+'\n')
复制代码 |
|