python拆分()问题的空白,可以解释一下吗?
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)
,看到它们之间的空白类似于一个标签,我遇到了一个问题,它将它们分解为字符。请帮助,我不明白我出错的地方。python拆分()问题的空白,可以解释一下吗?
的分裂
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])
要打印的原始行不在列表与拆分结果的代码。这应该更好的工作:
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
谢谢你,有些这是怎么回事,我打电话是错误的,谢谢你给我一个不同的方法。你还可以启发我使用vs vs try/except。我如何用这种方法关闭文件? – DST
添加了一些解释。 –
显示你所使用的分割实际的代码。 –
@MikeMüller补充说,它有什么不妥? – DST
你用正确的字符集打开了文件吗? –