私はEclipse用のPyDevを使用してPython 3.3で作業しているので、これが私のコードです:
countdata = open(countfilename, 'r')
countlist = countdata.readlines()
print(len(countlist))
genecountline = wordlist(countlist[-1])
print(genecountline)
countfilename
私の機械学習クラスで講師から与えられたスクリプトを使用してテキスト ファイルから生成された 7847 行のかなり長いテキスト ファイルを指します (2to3 を使用してスクリプトを Python 3 に変換する必要がありました)。
wordlist
は、私が作成した単純な関数で、1 行のテキストを受け取り、その中の単語をリストとして返します。
ファイル全体を行のリストにまとめて、計算のために特定の行を自由に参照できるようにします。readlines を使用して一度にそれらをすべて読み取るか、ファイルを反復処理して、次のように行を 1 つずつリストに追加します。
countdata = open(countfilename, 'r')
countlist = []
for line in countdata:
countlist.append(line)
関係ない。いずれにせよ、おおよそprint(len(countlist))
を与えてくれます。によって返される特定の行は常に異なります (ファイルはジェネレーター オブジェクトを使用して構築されます。インストラクターがそのスクリプトを構築したと述べたように、それがどのように機能するかは完全にはわかりません)。7630
7628
7633
countlist[-1]
genecountline = wordlist(countlist[-1])
print(genecountline)
Pythonがファイルの最後の行をどのように考えているかを確認するためだけに入力しました。そして、テキストパッドでファイルを開くと、返される行は、実際には によって返される行番号len(countlist)
です。言い換えれば、最後の約を無視しているように見えます。私のファイルの210行。だから私の質問は、どうすればこれを修正でき、どうすればこれが再び行われないようにすることができますか?