我有一个文本文件,我是通过转换.srt文件获得的。内容如下:
1 0:0:1,65 --> 0:0:7,85 Hello, my name is Gareth, and in this video, I'm going to talk about list comprehensions 2 0:0:7,85 --> 0:0:9,749 in Python.
我只想在文本文件中显示单词,使输出为新文本文件op.txt,输出表示为:
Hello my name is Gareth and
等等。
这是我正在进行的计划:
import os, re
f= open("D:\captionsfile.txt",'r')
k=f.read()
g=str(k)
f.close()
w=re.search('[a-z][A-Z]\s',g)
fil=open('D:\op.txt','w+')
fil.append(w)
fil.close()
但是我得到的这个程序的输出是:
None None None
答案 0 :(得分:1)
如果我们假设m
是am
的单词和缩写,in.txt
是您的文本文件,则可以使用
import re
with open('in.txt') as intxt:
data = intxt.read()
x = re.findall('[aA-zZ]+', data)
print(x)
将产生
['Hello', 'my', 'name', 'is', 'Gareth', 'and', 'in', 'this', 'video', 'I', 'm', 'going', 'to', 'talk', 'about', 'list', 'comprehensions', 'in', 'Python']
您现在可以使用以下内容将x
写入新文件
with open('out.txt', 'w') as outtxt:
outtxt.write('\n'.join(x))
获得
I'm
而不是
I
m
您可以使用re.findall('[aA-zZ\']+')
答案 1 :(得分:1)
with open("out.txt","a") as f1:
with open("b.txt") as f:
for line in f:
if not line[0].isdigit():
for word in line.split():
f1.write(re.sub(r'[,.!]', "", word)) # replace any punctuation you don't want
f1.write("\n")