【问题标题】:find and replace a string in all text files from Excel sheet从 Excel 工作表中查找并替换所有文本文件中的字符串
【发布时间】:2021-11-05 01:34:15
【问题描述】:

我需要将excel导入字典,然后使用字典查找和替换文件夹中所有SQL文件中的字符串。

我尝试使用以下 Python 代码从 excel 导入字典。

Excel 输入

import pandas as pd
d = pd.read_excel(r"findrep.xls",index_col=[0]).to_dict(orient='index')
print(d)

代码输出为

{'art': {'rep': 'artist'}, 'car': {'rep': 'cart'}, 'dar': {'rep': 'dart'}}

但我需要如下

{'src':'rep','art':'artist','car':'cart','dar':'dart'}

然后我还需要替换文件夹中的所有文件,我正在尝试使用以下代码,但我得到 'dict' object has no attribute 'iteritems' 错误。

请帮忙..

import os
os.chdir("C:\\Users\\Magesh\\Documents\\Python Scripts\\sql")
replacements = {'src':'rep','art':'artist','car':'cart','dar':'dart'}

for files in os.listdir("."):
    fo = open(files, "rU")
    text = fo.read()
    for src, target in replacements.iteritems():
        text = text.replace(src, target)
        fo.seek(0)
        fo.write(text)
        fo.truncate()
        fo.close()

【问题讨论】:

  • 请只问一个问题...
  • 第一个问题:试试df = pd.read_excel("findrep.xls", index_col=0); replacements = {df.index.name: df.columns[0], **df[df.columns[0]].to_dict()}。第二个问题:试试src, target in replacements.items()。

标签: python python-3.x


【解决方案1】:

感谢 Timus,它成功了

import os
import pandas as pd
df = pd.read_excel("findrep.xls", index_col=0); 
replacements = {df.index.name: df.columns[0], **df[df.columns[0]].to_dict()}
print(replacements)

os.chdir("C:\\Users\\Magesh\\Documents\\Python Scripts\\sql")
for files in os.listdir("."):
    fo = open(files, "r+")
    text = fo.read()
    for src, target in replacements.items():
       text = text.replace(src, target)
    fo.seek(0)
    fo.write(text)
    fo.truncate()
    fo.close()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-11
    • 2018-02-23
    相关资源
    最近更新 更多