次のコードがあります。
with open('EcoDocs TK pdfs.csv', 'rb') as pdf_in:
pdflist = csv.reader(pdf_in, quotechar='"')
for row in pdflist:
if row[1].endswith(row[2]):#check if file type is appended to file name
pathname = ''.join(row[0:2])
else:
pathname = ''.join(row)
if os.path.isfile(pathname):
filehash = md5.md5(file(pathname).read()).hexdigest()
csv ファイルからファイル パス、ファイル名、ファイル タイプを読み取ります。次に、ファイル パスとファイル名を結合する前に、ファイル タイプがファイル名に追加されているかどうかを確認します。次に、ファイルに対して何かを行う前に、ファイルが存在するかどうかを確認します。csv ファイルには約 5000 個のファイル名がありますが、isfile はこれらの約半分についてのみ True を返します。これらの isfile の一部が存在する場合に False を返すことを手動で確認しました。すべてのデータが読み込まれるので、エスケープ文字や単一のバックスラッシュに問題はないはずなので、少し困惑しています。何か案は?csv ファイル形式の例を以下に示します。またpathname
、isfile で見つけられないファイルの例もいくつか示します。
csvファイル-
c:\2dir\a. dir\d dir\lo dir\fu dir\wdir\5dir\,5_l B.xls,.xls
c:\2dir\a. dir\d dir\lo dir\fu dir\wdir\5dir\,5_l A.pdf,.pdf
作成されたパス名-
c:\2dir\a. dir\d dir\lo dir\fu dir\wdir\5dir\5_l B.xls
c:\2dir\a. dir\d dir\lo dir\fu dir\wdir\5dir\5_l A.pdf
ありがとう。