2017-09-14 9 views
1

コーディングにpython3(python3.6.1)を使用しています。Python3を使用してパスがコマンドライン引数である場合にpandasを使用してcsvファイル名を読み取ることができません

args = sys.argv 
    filename = args[1] 
    data = pd.read_csv(filename) 

しかし、ファイルが存在するにもかかわらず存在しないと言っています。ファイル名は、その前にb接頭辞を持つバイト文字列としてエンコードされています。

次のコードも試しました。

filename = StringIO(filename) 
    data = pd.read_csv(filename) 

ここでエラーはありません。しかし、私はファイルの名前として列を持つ空のデータフレームを参照してください。

私はコマンドを使用してプログラムを実行しました。

python id3.py /path/to/filename.csv 

誰かがこれで私を助けてもらえますか誰かが答えを持っているリンクする私を指すことができます。

編集: - パスに問題がありました。 csvファイルのパスにはいくつかのスペースがあります。したがって、Ubuntuはこれを '%20'に置き換えました。これはPythonがバイト文字列として読み込むためです。したがって、csvファイルを読み取ることができませんでした。

パスのスペースを削除したとき。 python pandasはcsvファイルを読み取ることができました。

おかげ

+0

あなたは 'プリント(ファイル名)'出力何をするか疑問 – GiantsLoveDeathMetal

+0

に入力を入れることはできますか? – GiantsLoveDeathMetal

+0

印刷コマンドは/path/to/filename.csvを指定していますが、表示されるエラーはFileNotFounderrorです:b '/ path/to/filename.csv'は存在しません。 – megamind

答えて

0

てみてください「ファイル/パス/ spaces.csvと」

あなたは、例えばスクリプトを実行するときに引用符を使用して

python script.py "file/path/with spaces.csv" 
関連する問題