Python文本处理
说明情况:
chinese文件是翻译对照表,enlishtext是系统的翻译文字对照表
1.chinese文件是存放有两个字段,如下图,第一列存放需要翻译的文字,第二例为翻译后的文字
2.enlishtext文件,内容采用等号进行连接,我们需要将等号后面的文字进行翻译,并写入新的文件
-
先将enlishtext文件进行分割
for line in content: # 使用等号进行分割 parts = line.split('=') if len(parts) > 1: # 等号之前的内容info,不处理 info = parts[0] # 等号之后的内容 deny = parts[1].strip()
4.判断chinese中第一例文字是否存在与deny(就是等号分割后的文字,需要翻译的)中
def inString(CRM_info,Excel_info):
if Excel_info in CRM_info:
return True
else:
return False
5.存在则替换
def crmReplace(CRM_info,substring,replacement):
newString = CRM_info.replace(substring, replacement)
return newString
6.生成新的字符串,连接info组成我们需要的字符串
for i in range(df.shape[0]):
# 获取表格的第一列内容,存在于CRM中的
chinese = df.iloc[i, 0]
# 获取Excel第二列内容,已经翻译的值
english = df.iloc[i, 1]
if inString(deny,chinese):
result = crmReplace(deny,chinese,english)
# 将等号之后的内容替换为Excel中的第二列内容
new_line = info + '= ' + str(result)+ '\n'
new_lines.append(new_line)
break
else:
new_lines.append(line)
全部代码如下,
import pandas as pd
def inString(CRM_info,Excel_info):
if Excel_info in CRM_info:
return True
else:
return False
def crmReplace(CRM_info,substring,replacement):
newString = CRM_info.replace(substring, replacement)
return newString
# 读取Excel文件
excel_file = 'C:/Users/Administrator/Desktop/test/chinese.xlsx'
df = pd.read_excel(excel_file)
# 读取enlishtext文件内容
file_path = 'C:/Users/Administrator/Desktop/test/enlishtext'
with open(file_path, 'r', encoding='utf-8') as f:
content = f.readlines()
new_content = content
new_lines = []
for line in content:
# 使用等号进行分割
parts = line.split('=')
if len(parts) > 1:
# 等号之前的内容info,不处理
info = parts[0]
# 等号之后的内容
deny = parts[1].strip()
for i in range(df.shape[0]):
# 获取表格的第一列内容,存在于CRM中的
chinese = df.iloc[i, 0]
# 获取Excel第二列内容,已经翻译的值
english = df.iloc[i, 1]
if inString(deny,chinese):
result = crmReplace(deny,chinese,english)
# 将等号之后的内容替换为Excel中的第二列内容
new_line = info + '= ' + str(result)+ '\n'
new_lines.append(new_line)
break
else:
new_lines.append(line)
else:
new_lines.append(line)
# 将修改后的内容写入enlishtext文件
with open("2.txt", 'w', encoding='utf-8') as f:
f.writelines(new_lines)
f.close()
print("文件替换成功")