AA vowel
AE vowel
AH vowel
AO vowel
AW vowel
AY vowel
B stop
CH affricate
D stop
DH fricative
EH vowel
ER vowel
EY vowel
F fricative
G stop
HH aspirate
IH vowel
IY vowel
JH affricate
K stop
L liquid
M nasal
N nasal
NG nasal
OW vowel
OY vowel
P stop
R liquid
S fricative
SH fricative
T stop
TH fricative
UH vowel
UW vowel
V fricative
W semivowel
Y semivowel
Z fricative
ZH fricative
这是文件中的内容,然后我将它们分成行并解析它们。问题是当我使用line.split()
甚至re.split(r'\t+', line)
时,看到它们之间的空格类似于制表符,我遇到了将它们分成字符的问题。请帮忙,我不明白我哪里出错了。
拆分代码
try:
datafile = open(filename,'r')
except IOError:
print('Could not open ' + filename)
sys.exit()
pass
stypes = {}
for line in datafile.readlines():
if line:
re.split(r'\t+', line)
phone = line[0]
type = line[1]
print(line[0] + ' ' + line[1] + ' ' + line[2])
答案 0 :(得分:4)
您正在使用拆分结果打印原始行而不是列表。这应该更好:
with open('mywords.txt') as fobj:
for line in fobj:
res = line.split()
print(res)
输出:
['AA', 'vowel']
['AE', 'vowel']
with
语句会打开一个文件,并在您提交后立即将其关闭
到with
的级别,即fobj
只有在您编写更多代码之后才会打开
在with
的同一级别(或在那里结束你的功能或程序)。
这称为上下文管理器。上下文是with
下面的缩进行。
示例:
with open('mywords.txt') as fobj:
print('closed', fobj.closed)
print('closed', fobj.closed)
输出:
closed False
closed True