SRT 자막 파일 형식의 배치 친구에 메모장 ++과 파이썬 스크립트 배치 JSON로 변환

아래와 같이 인터넷 저장소 자막 자막 파일 압축 패키지 다운로드 :

 

 

그런 다음 파일 섹션 목록, 현재 디렉토리에 7Z 추출물을 사용는 (228 자막 파일의 총) 다음과 같습니다 :

 

 

오픈 한 파일은 다음과 같은 형식을 볼 수 있습니다 :

 

 

: 문자 인코딩은 ANSI, 변환 배치 형식 UTF-8, 참조에 필요하다  https://www.cnblogs.com/abc789/p/12148402.html

그런 다음 일괄 변환 JSON 형식으로 다음과 같은 파이썬 스크립트를 사용합니다. 

 

 1 # -*- coding: UTF-8 -*-
 2 #coding=utf-8
 3 from os.path import abspath, dirname
 4 import re
 5 import sys
 6 import shutil
 7 import os
 8 def proSrtFile(path,srtFile,pathDest):
 9     result = list()
10     f = open(path + '\\' + srtFile,'r')
11     lines = f.readlines()
12     new_line=''
13     is_eng = 0 
14     is_chn = 0
15     chn = ''
16     eng = '' 
17     result.append('[')
18     for line in lines:
19         line = line.strip() 
20         line = line.lstrip() 
21         line = line.replace('...',' ')
22         line = line.replace('\"','\'')
23         line = line.replace('.','. ')
24         line = line.replace(',',', ')
25         line = line.replace('?','? ')
26         line = line.replace(':',': ')
27         line = line.replace(';','; ')
28         line = line.replace('!','! ')
29         line = line.replace('. . ','. ')
30         if '-->' in line:
31             continue
32         line = line.replace('-','')
33         if line == '':
34             # 如果中文或英文之一为空则不输出
35             if eng != '' and chn != '': 
36                 result.append('{"eng":"' + eng + '","chn":"' + chn + '"},')
37             is_eng = 0 
38             is_chn = 0 
39             eng = ''
40             chn = '' 
41             continue    
42         
43         # 如果这行是数字则写入上一行并重新开始:
44         if line.isdigit():
45             is_eng = 1 
46             is_chn = 0
47             eng = '' 
48             chn = '' 
49             continue
50         if is_eng == 1:
51             eng = line 
52             is_eng = 0 
53             is_chn = 1
54             continue
55         if is_chn == 1:
56             chn = line 
57             is_eng = 0 
58             is_chn = 0
59             continue
60  
61     f.close()
62     result.append(']')
63     open(pathDest + '\\' +  srtFile[0:14] +'.json','w').write('%s' % '\n'.join(result))
64     
65 pathSrc="D:\\data\\corona_projects\\LearnEnglishSentences_json\\data\\friends\\001\\" 
66 pathDest="D:\\data\\corona_projects\\LearnEnglishSentences_json\\eng"
67 indexList= list()
68 for root, dirs, files in os.walk(pathSrc):
69     for fn in files: 
70         if fn[-4:] == '.srt':
71             
72             print fn
73             indexList.append('{"title":"'+fn[0:14]+'","file":"' + fn[0:14] +'.json"},')
74             proSrtFile(root,fn,pathDest)
75 
76 open(pathDest + '\\' +  'x_temp_index.xml','w').write('%s' % '\n'.join(indexList))
77  
78 print '--------------------------------------------'
79 print pathDest 
80 print pathDest + '\\' +  'x_temp_index.xml'
81  

 

在运行之前,注意修改以上脚本的第 65 行,66行  pathSrc 存储了已经转码为UTF8的原始字幕文件的目录,pathDest存储了转换为json格式后输出的目录。

 

其中一个转换完毕的json文件格式如下图所示:

 

 

 

主要对源文件做了如下转换:英文用eng表示,中文用chn表示,每句中文,英文合并到了一行。并存储成了json格式。

추천

출처www.cnblogs.com/abc789/p/12148792.html