我正在尝试使用以下代码获取某些文本的标题:
for line in content:
title = re.search('^Title:(.*)$',line)
if title:
return(title.group(1))
对于这些文本
DOCA.TXT:
标题:布朗语料库:A 部分
但是/cc/在七号铁/nn击球/nn他/pps使用/vbd到/接近/vb/在果岭/nn误入/vbd进入/在a/在沙坑/nn和/cc住宿/vbd在/在a/轻微/jj抑郁/nn ./.
结束
DOCB.TXT:
标题:布朗语料库
布朗大学现代美国英语标准语料库(或简称布朗语料库)已编译...
一些我如何只能获得 DOCB.TXT 的标题,但不能获得 DOCA.TXT (它显示“无”)
最佳答案
下面的内容对我有用,也许你需要在十六进制编辑器中查看你的文件 - 如果你不告诉Python如何打开文件来处理,可能是行尾问题或unicode字节顺序标记那个。
#!python3.4
import re
for fn in ('a.txt','b.txt'):
with open(fn) as fin:
for line in fin.readlines():
title = re.search('^Title:(.*)$',line)
if title:
print(title.group(1))
要打开带有 BOM 的 UTF-16 文件,您可以使用以下命令:open(fn,encoding='utf-16')
当然,这不适用于 ascii
、iso8859-1
或 utf-8
编码文件,因此您需要确保所有文本文件都采用相同的编码,或为每个文本文件选择正确的编码。
关于python - 获取文本标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33882402/