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 の 2 行目から実行を開始する必要があります。どうすればいいですか?

ありがとう!

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 に答える