1

このエラーを示す最小限の作業例:

from os import listdir, getcwd
from os.path import isfile, join, realpath, dirname
import csv

def gd(mypath, myfile):
    # Obtain the number of columns in the data file
    with open(myfile) as f:
        reader = csv.reader(f, delimiter=' ', skipinitialspace=True)
        for i in range(20):
            row_20 = next(reader)
        # Save number of clumns in 'num_cols'.
        num_cols = len(row_20)
        return num_cols

mypath = realpath(join(getcwd(), dirname(__file__)))

# Iterate through all files. Stores name of file in 'myfile'.
for myfile in listdir(mypath):

    if isfile(join(mypath,myfile)) and (myfile.endswith('.dat')):
        num_cols = gd(mypath, myfile)

print(num_cols)

そのフォルダーに「data.dat」という単一のファイルpythonがあり、エラーが返されます。

----> 9     with open(myfile) as f:
....
IOError: [Errno 2] No existe el archivo o el directorio: u'data.dat'

これはNo file or directory: u'data.dat'に変換されます。

ファイル名の先頭にuが追加されるのはなぜですか? ファイル名を正しく解析するコードを取得するにはどうすればよいですか?

4

2 に答える 2

2

あなたの問題は、それmyfileが単なるファイル名であり、join(mypath,myfile).

于 2013-06-05T17:59:25.707 に答える