0

ファイルの読み取りに小さな問題があります。私のコード:

import csv as csv
import numpy 

with open("train_data.csv","rb") as training:
    csv_file_object = csv.reader(training)
    header = csv_file_object.next()

    data = []
    for row in csv_file_object:
        data.append(row)
    data = numpy.array(data)

no such file "train_data.csv" というエラーが表示されるので、問題は場所にあることがわかります。しかし、次のようにパッドを指定するたびに、 open("C:\Desktop...etc) も機能しません。何が間違っていますか?

4

2 に答える 2

4

完全なファイル パスを指定すると、スクリプトが機能するはずです。そうではないので、パスにエスケープ文字が含まれている必要があります。これを修正するには、raw-string を使用してファイル パスを指定します。

# Put an 'r' at the start of the string to make it a raw-string.
with open(r"C:\path\to\file\train_data.csv","rb") as training:

生の文字列はエスケープ文字を処理しません。

また、技術的な事実として、完全なファイル パスを指定しないと、Python はスクリプトが起動されたディレクトリ内のファイルを検索します。そこにない場合は、エラーがスローされます。

于 2013-10-01T16:28:23.107 に答える
2

Windowsを使用する場合open()は、バックスラッシュを適切に処理する必要があります。

オプション 1.)生の文字列を使用します。これは、r.

open(r'C:\Users\Me\Desktop\train_data.csv')

オプション 2.) バックスラッシュをエスケープする

open('C:\\Users\\Me\\Desktop\\train_data.csv')

オプション 3.) スラッシュを使用する

open('C:/Users/Me/Desktop/train_data.csv')

使用しているファイルを見つけることに関してopen('train_data.csv')は、Pythonスクリプトを実行しているディレクトリを探しているだけです。そのため、から実行している場合は、デスクトップ上にもある必要がありますC:\Users\Me\Desktop\train_data.csv

于 2013-10-01T16:30:19.433 に答える