1
私はPythonのための鳥です。私はいくつかのファイルを翻訳したいので、私はPythonのシェルを記述します。それは動作しません、私は結果を印刷します。私は間違ってコードが動作しますが、失敗を翻訳すると思う。私はそれが動作していないか分からない。Pythonのマルチプロセッシング
<multiprocessing.pool.ApplyResult object at 0x102ee3990>
<multiprocessing.pool.ApplyResult object at 0x102ee3a10>
<multiprocessing.pool.ApplyResult object at 0x102ee3ad0>
#!/usr/bin/env python
#coding=utf-8
from multiprocessing import Pool
from googletrans import Translator
import os
import sys
import re
import urllib,urllib2
from time import time
reload(sys)
sys.setdefaultencoding("utf-8")
def Gtranslate(pregs):
filepath='./test/'
pathDir = os.listdir(filepath)
for allDir in pathDir:
filename = os.path.join('%s%s' % (filepath, allDir))
content = open(filename,'r').read()
for preg in pregs:
rex=re.search(preg,content)
if rex:
translator = Translator()
res=translator.translate(rex.group(1), dest='zh-CN').text
content = re.sub(preg,rex.group().replace(rex.group(1),res),content)
print res
with open(filename,'w+') as f:
f.write(content)
def main():
pool = Pool(processes=4)
partterns = ("script_name\s*\(\s*english\s*:\s*\"([\s\S]*?)\"\s*\)\s*;","script_set_attribute\s*\(\s*attribute\s*:\s*\"\s*solution\s*\"\s*,\s*value\s*:\s*\"([\s\S]*?)\"\s*\)\s*;","script_set_attribute\s*\(\s*attribute\s*:\s*\"\s*description\s*\"\s*,\s*value\s*:\s*\"([\s\S]*?)\"\s*\)\s*;")
for par in partterns:
result = pool.apply_async(Gtranslate, (par,))
print result
print par
pool.close()
pool.join()
if result.successful():
print 'successful'
if __name__ == "__main__":
t1=time()
main()
print "cost time is: {:.2f}s".format(time() - t1)
ありがとうございました!問題は解決しました! – Fade
@nansun、どうぞよろしくお願いします。ハッピーパイソンプログラミング。 – falsetru