首页 > 解决方案 > Python:替换txt文件中的字符串,但不是每次出现

问题描述

我对python真的很陌生,我需要将新的artikel Ids更改为旧的。Id 映射在一个字典中。我需要编辑的文件是一个普通的 txt,其中每一列都由 Tabs 分隔。问题不在于替换值,而只是替换由 pos 设置的所需列中的出现。

我真的很感激一些帮助。

def replaceArtCol(filename, pos):
    with open(filename) as input_file, open('test.txt','w') as output_file:
        for each_line in input_file:
            val = each_line.split("\t")[pos]
            for row in artikel_ID:
                if each_line[pos] == pos
                    line = each_line.replace(val, artikel_ID[val])
            output_file.write(line)`

此代码仅替换文本文件中出现的任何字符串。

标签: python

解决方案


如果您的数据是制表符分隔的,那么您必须将此数据加载到数据框中.. 这样您就可以拥有列和行结构.. 如果没有一些复杂和错误的逻辑,您现在正在做的事情将不允许您做您想做的事情. 你可以试试这些步骤

import pandas as pd
df = pd.read_csv("dummy.txt", sep="\t", encoding="latin-1")
df['desired_column_name'] = df['desired_column_name'].replace({"value_to_be_changed": "newvalue"})
print(df.head())

推荐阅读