Python学习(8):替换文件内容

在前处理时替换文件里不被翻译工具识别的内容。用 python 写完脚本后,实现 Perl 脚本调用 python 脚本并运行。
delete-content-2.7.py

# -*- coding:utf-8 -*-
import os
import re
import io
import sys

str1 = []
print sys.argv[1]
source_path = sys.argv[1] + "enu\\SetupRes\\locale\\en-US\\"
#source_path = "C:\\Temp\\enu\\SetupRes\\locale\\en-US\\"
for root1, dirs, files1 in os.walk(source_path):
    #print(root1)
    #获取文件名列表
    for i in range(len(files1)):
        filename_source = files1[i]
        fa = io.open(root1 + filename_source, 'r+', encoding='utf-8')
        a1 = re.sub(r' &&.*&&', "", fa.read())
        #print(a1)
        fb = io.open(root1 + filename_source, 'w+', encoding='utf-8')
        fb.write(a1)

BeforeUpdateProject.pl

#!/usr/bin/env perl
use warnings;
use strict;
our $MyLocation;
$MyLocation = "C:\\Temp\\";
#logMessage("Plugin BeforeUpdateProject.pl is called.");
my $rv = system("$MyLocation\\plugin\\delete-content-2.7.py $MyLocation");
print "exit: $rv\n"

后处理时,要把之前的内容再加到翻译文件及源文件中,同样用Perl调用运行 python脚本。
add-content-2.7.py

# -*- coding:utf-8 -*-
import os
import re
import io
import sys

filter=[".xml"] #设置过滤后的文件类型 当然可以设置多个类型

def all_path(dirname):

    result = []#所有的文件

    for root, dir, files in os.walk(dirnfileame):

        # root #当前主目录
        # dir #当前主目录下的所有目录
        # files  #当前主目录下的所有文件

        for filename in files:
            apath = os.path.join(dir, filename)#合并成一个完整路径
            ext = os.path.splitext(apath)[1]  # 获取文件后缀 [0]获取的是除了文件名以外的内容

            if ext in filter:
                result.append(apath)

    return result

#print(all_path("C:\\temp\\"))

#运行结果
print sys.argv[1]
xml_path = all_path(sys.argv[1])
#print(xml_path)
for i in range(len(xml_path)):
    #print(xml_path[i])
    fa = io.open(xml_path[i], 'r+', encoding='utf-8')
    #print(fa)
    a1 = re.sub(r'xxxx</String>', 'xxxx &&yearRelease&&</String>', fa.read())
    #print(a1)
    fb = io.open(xml_path[i], 'w+', encoding='utf-8')
    fb.write(a1)

AfterGenerateProject.pl

#!/usr/bin/env perl
use warnings;
use strict;
our $MyLocation;
$MyLocation = "C:\\Temp\\";
#logMessage("Plugin BeforeUpdateProject.pl is called.");
my $rv = system("$MyLocation\\plugin\\add-content-2.7.py $MyLocation");
print "exit: $rv\n"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值