0

27 のサブディレクトリにまたがる多数のプレーンテキスト構成ファイル (.dta) があります。それらすべての情報を解析して、作業しやすい共通のドキュメントにしようとしています。

これまでのところ、私は持っています:

import linecache
import csv
import os

csvout = csv.writer(open("dtaCompile.csv","wb"))

directory = os.path.join("c:\\","DirectKey")
for root,dirs,files in os.walk(directory):
for file in files:
    if file.endswith(".DTA"):
        f=open(file,'r')

        lines = f.readlines()
        description = lines[1]
        articleCode = lines[2]
        OS = lines[25]
        SMBIOS = lines[32]
        pnpID = lines[34]
        cmdLine = lines[28]
        csvout.writerow([SMBIOS, description, articleCode, pnpID, OS, cmdLine])
        f.close()

次のエラーが表示されます。

 Traceback (most recent call last):
   File "test.py", line 11, in <module>
   f=open(file,'r')
   IOError: [Errno 2] No such file or directory: '000003APP.DTA'
4

4 に答える 4

1

それ以外の

    f=open(file,'r')

あなたのおそらく必要性

    f=open(os.path.join(directory, root, file),'r')

file は単なるファイルの名前であり、ファイルへのパスについては何も述べていません。フルパスを作成するには、さまざまなコンポーネントで os.path.join を使用する必要があります

于 2012-08-30T20:03:40.797 に答える
0
if file.endswith(".DTA"):
    file = os.path.join(directory, root, file)
于 2012-08-30T20:03:43.230 に答える
0

それ以外の:

f=open(file,'r')

試す:

f = open(os.path.join(directory, file), "r")
于 2012-08-30T20:04:26.340 に答える
0

私の推測では、プログラムを実行しているディレクトリは、歩いているディレクトリと同じではありません。

印刷してみてください: os.getcwd() を見てください。

于 2012-08-30T20:04:26.627 に答える