各ディレクトリに複数のディレクトリと多くのファイルがあり、それぞれを繰り返し処理したいと考えています。また、各ファイルの行のみを読み取りたいため5th
、最初の 4 行は無視します。4
最初の行を無視しようとせずにスクリプトを実行すると、問題なく実行されます。コードは次のとおりです。
import os
#find the present working directory
pwd=os.path.dirname(os.path.abspath(__file__))
#find all the folders in the present working directory.
dirs = [f for f in os.listdir('.') if os.path.isdir(f)]
for directory in dirs:
os.chdir(os.path.join(pwd, directory));
chd_dir = os.path.dirname(os.path.abspath(__file__))
files = [ fl for fl in os.listdir('.') if os.path.isfile(fl) ]
print files
for f in files:
f_obj = open(os.path.join(chd_dir, f), 'r')
for i in xrange(0,4): #ignore the first 4 lines
f_obj.next()
s=f_obj.readline()
print s
f_obj.close()
このスクリプトでは、次のエラーが発生します。
ValueError: Mixing iteration and read methods would lose data
Python が一部のデータを失うと考える理由がわかりません。また、それを修正する回避策と、なぜそれを修正するのかを知りたいです。