现有txt 文件,文件内容如下
12c 1672563202 104.132 30.667 0.0 2340.3
1c3 1672563212 103.940459 30.62462 0.0 11293.0
14v 1672563212 103.9666 30.57333 54.6 1703.0
15x 1672563212 104.241817 30.504 0.0 3616.0
12c 1672563212 104.1583 18.66567 0.0 2340.3
z12 1672563222 103.940459 30.6462 0.0 11293.0
222 1672563222 103.902 20.573006 53.6 1703.0
123 1672563222 104.24115 30.597 0.0 3616.0
1f1 1672563222 104.137 30.668 29.7 2340.3
现在想把第一列用数字替换了,相同的用相同的值。这个python代码怎么写,试了好久用了很多方法都没办法替换
该回答引用ChatGPT
你可以使用Python中的字典数据结构来实现替换。以下是一个示例代码,可以帮助你实现将第一列用数字替换,相同的用相同的值。
# 读取原始文件内容
with open('filename.txt', 'r') as f:
content = f.readlines()
# 去除每行末尾的换行符
content = [x.strip() for x in content]
# 创建一个字典,用于存储每个不同的第一列值和对应的数字
id_dict = {}
id_num = 1
# 替换第一列的值
for i, line in enumerate(content):
cols = line.split()
if cols[0] not in id_dict:
id_dict[cols[0]] = id_num
id_num += 1
cols[0] = str(id_dict[cols[0]])
content[i] = ' '.join(cols)
# 将新内容写入文件
with open('filename.txt', 'w') as f:
f.write('\n'.join(content))
解释:
读取文件内容并去除每行末尾的换行符。
创建一个字典id_dict,用于存储每个不同的第一列值和对应的数字id_num。
遍历每行数据,对于每个不同的第一列值,将其替换为对应的数字,并在字典中存储。
将新内容写回到文件中。
这个示例代码可以处理任何数量的行和不同的第一列值,并保留文件中原有的格式。你可以将文件名filename.txt替换为你实际的文件名。