ytszzp 发表于 2018-3-24 19:13:41

有意思

阿归啊 发表于 2018-3-24 21:00:54

qiui1

plusyou13 发表于 2018-3-24 21:18:45

1

C4rB0n 发表于 2018-3-25 14:23:24

{:5_92:}

Python3.3 发表于 2018-3-25 19:18:34

围观。

wuxuqiao 发表于 2018-3-31 21:45:49

看看

天涯倦客 发表于 2018-4-11 10:27:19

感谢分享

colinshi 发表于 2018-4-11 14:26:52

很有趣的想法

cngrand1 发表于 2018-4-12 16:48:12

谢谢

heywilliam 发表于 2018-4-12 17:49:00

看了代码感觉非常实用了,代码的语法都比较好理解,很适合初学者学习~ 谢谢分享

xd123456 发表于 2018-4-12 18:03:02

次vvvvvv

greedfarmer 发表于 2018-4-12 20:21:58

感觉好厉害,来看一下啊

cngrand1 发表于 2018-4-12 20:38:20

谢谢分享,你的程序经常出错,我改进了一下,短线了会自动重新启动
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Apr 29 11:13:58 2017

@author: jerry-xu
"""
import requests
import json
import os


def translate(txt=''):
    url = 'http://fy.iciba.com/ajax.php?a=fy'
    req = requests.Session()
    head = {'User-Agent': "Mozilla/5.0 (Windows NT 5.1; rv:52.0) Gecko/20100101 Firefox/52.0"}
    data = {'f': 'auto', 't': 'auto', 'w': txt}
    res = req.post(url, data=data, headers=head)
    result = json.loads(res.text)
    if result:
      try:
            out = result['content']['out']
      except:
            out = '\n'.join(result['content']['word_mean'])
      try:
            out = out.replace('<br/>', '\n')
      except:
            pass
    else:
      out = txt
    return out


if __name__ == '__main__':
    print('Srt Translation Program v0.1')
    files = []
    filepath = 'd:/1.srt' #input('Please input the srt file path \n >>>')
    if filepath[-4:] != '.srt':
      filelist = os.listdir(filepath)
      for each in filelist:
            if each[-4:] == '.srt':
                files.append(filepath + '/' + each)
    else:
      files.append(filepath)
    中文字幕文件=filepath[:-4]+'_cn'+filepath[-4:]
    if os.path.exists(中文字幕文件):
      print('中文字幕文件已存在')
    else:
      f=open(中文字幕文件,'w')
      f.close()

    while 1:
      try:
            with open(中文字幕文件) as f1:
                lines = f1.readlines()
                已翻译行数 = (len(lines))

            with open(filepath) as f2, open(中文字幕文件, 'a') as f:
                lines = f2.readlines()
                总行数 = (len(lines))
                if 总行数== 已翻译行数+2:
                  break

                for line in lines[已翻译行数:]:
                  try:
                        print('Translating Line %d' % int(line))
                        f.write(line)
                  except:
                        if '-->' in line:
                            f.write(line)
                        elif len(line) == 0:
                            f.write('\n')
                        else:
                            f.write(translate(line))
                            f.write('\n')
                            f.flush()
      except:
            print('发生错误,重新启动')
            import time
            time.sleep(1)
    print('翻译完成!')

hko 发表于 2018-4-14 21:04:35

鍥炲

小猪霍克 发表于 2018-4-15 03:50:34

需要这个软件看美国片

卡咯烦恼 发表于 2018-4-29 20:38:29

666

Niong 发表于 2018-5-2 09:09:31

66666666

Meissner 发表于 2018-5-3 21:22:05


不错啊 来学习

z359670476 发表于 2018-5-4 10:15:41

look

fengyu 发表于 2018-5-4 11:09:31

0.0
页: 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15
查看完整版本: 【python应用分享】电影字幕自动翻译器