从 Excel 工作表中查找并替换所有文本文件中的字符串

Posted

技术标签:

【中文标题】从 Excel 工作表中查找并替换所有文本文件中的字符串【英文标题】:find and replace a string in all text files from Excel sheet 【发布时间】: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()

【问题讨论】:

请只问一个问题... 这将有助于***.com/questions/17426292/… 第一个问题:试试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() 【参考方案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()

【讨论】:

以上是关于从 Excel 工作表中查找并替换所有文本文件中的字符串的主要内容,如果未能解决你的问题,请参考以下文章

将一张excel表中的数据全部粘贴到txt文本文件中,如何做

Excel表中连接sql并使用sql语句引用excel单元格数据作为查询条件

EXCEL问题,如何在三个工作表中查找出同时出现在这三个工作表中的所有数据,并将数据显示出来

python查找文本文档中特定间隔位置的字符并替换

VBA使用列中找到的格式查找并替换工作表中找到的所有单元格

从sed中的文本文件中查找并替换多个字符串[重复]