1

我有一个小问题。我在 Python 中有这段代码(取自一个更大的脚本):

for line in open(trainFile):
  for token,tag in [x.rsplit('/',1) for x in line.split()]:
    tokenTagCount[(token,tag)] += 1
    tags[tag] += 1
    listOfTags.append(tag)

trainFile 包含丹麦语的单词和标签,但这不是问题。问题是这样的:因为文件是丹麦语,我必须# -*- coding: cp1252 -*-在第一行包含才能正确显示 Python 中的字符。但是,我的 for 循环(“for line in open...”)应该忽略关于编码的第一行,并从 trainFile 的第二行开始运行,实际数据从这里开始。我该怎么做呢?

谢谢!

4

3 回答 3

6

这是您可以跳过第一行的方法:

with open(trainFile) as f:
    next(f)  # discard the first line
    for line in f:
        # deal with the rest.

更好的选择可能是跳过以 开头的行#

with open(trainFile) as f:
    for line in f:
        if line.startswith('#'):
            continue
        # deal with the rest.
于 2013-01-30T21:14:39.940 回答
3
f=open(trainFile)
f.readline()
for line in f.readlines():
     ........
于 2013-01-30T21:13:17.417 回答
1

您可以在从文件中读取这些行时枚举它们。例如:

for i, line in enumerate(open(trainFile)):
    if i != 0:
        # do stuff
于 2013-01-30T21:19:40.167 回答