質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

4125閲覧

CSVファイルの読み込みエラー

nini43

総合スコア15

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/04/19 03:28

編集2018/04/19 03:53

python初心者です

pythonでcsvファイルの読み込みを行いたいのですが、

python

1Traceback (most recent call last): 2 File "<stdin>", line 1, in <module> 3 File "C:\Users\tssak\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 917, in loadtxt 4 fh = np.lib._datasource.open(fname, 'rt', encoding=encoding) 5 File "C:\Users\tssak\Anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 260, in open 6 return ds.open(path, mode, encoding=encoding, newline=newline) 7 File "C:\Users\tssak\Anaconda3\lib\site-packages\numpy\lib\_datasource.py", line 616, in open 8 raise IOError("%s not found." % path) 9OSError: JPUSA.csv not found.

のようなエラーが出てしまいます
どのようにすればよいでしょうか?
入力コードは

python

1import numpy as np 2from sklearn import preprocessing 3from sklearn.model_selection import train_test_split 4data = np.loadtxt('JPUSA.csv', delimiter=',', dtype=float) 5

確認してみたところパスが違いました
パスを変更して入力してみたらこのようなエラーが出ました
どうすればよろしいでしょうか

python

1 File "<stdin>", line 1 2SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kawakawa2018

2018/04/19 04:15

「確認してみたところパスが違いました パスを変更して入力してみたらこのようなエラーが出ました」 このソースコードを追加で掲載してください。コードはインテンドを考慮して整形してください。
guest

回答3

0

ベストアンサー

はじめまして

まず「質問への依頼」をごらんになって、配慮してください。

その上で、憶測になりますが、2番目のエラー

パスを変更して入力してみたらこのようなエラーが出ました

Python

1SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

について回答します。

Python

1data = np.loadtxt('JPUSA.csv', delimiter=',', dtype=float)

ご質問の内容から、「パスを変更して」のパスは「'JPUSA.csv'」だと思います。

これを

'C:\(ファイルの置かれたフォルダのパス)\JPUSA.csv'
あたりに修正されたかと思います。

その上でこちらの回答が参考になります。
ttps://ja.stackoverflow.com/questions/11582/python%E3%81%A7%E7%B0%A1%E5%8D%98%E3%81%AA%E3%83%A9%E3%83%B3%E3%83%81%E3%83%A3%E3%83%BC%E3%82%92%E4%BD%9C%E3%82%8D%E3%81%86%E3%81%A8%E6%80%9D%E3%81%86%E3%81%AE%E3%81%A7%E3%81%99%E3%81%8Copen%E9%96%A2%E6%95%B0%E3%82%92%E4%BD%BF%E3%81%86%E3%81%A8%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E5%87%BA%E3%81%A6%E3%81%97%E3%81%BE%E3%81%84%E3%81%BE%E3%81%99

誤り

Python

1def f_open(self): 2 f = open("C:\Users\hoge\Documents\python programs", "r", encoding="utf-8") 3 f.close()

文字列リテラル中の\はエスケープに使われます。
例えば \n が改行、\t がタブ、\ が \ 自身などです。
ですので "C:\Users …… という文字列の \U 以下がエスケープシーケンスと見なされています。
\Uxxxxxxxx は文字コードを指定するエスケープシーケンスです。(http://docs.python.jp/3/reference/lexical_analysis.html?#string-and-bytes-literals)

解決方法は、

1 raw文字を使えばエスケープは解釈され無いので r を付けて、r"C:\Users …… と書く。
2 \自身を表すため \ とし "C:\Users …… と書く。
3 Unix系のようにディレクトリの区切りに / を使う。(Windows であっても、Python がよろしくやってくれると思います)
あたりでしょうか。

unicodeescapeの誤りを修正した

Python

1def f_open(self): 2 f = open("C:/Users/hoge/Documents/python programs", "r", encoding="utf-8") 3 f.close()

投稿2018/04/19 04:26

kawakawa2018

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

OSError: JPUSA.csv not found.

とあるように、CSVファイルを見つけられていません。
実行環境はWindowsのようですので、ダブルクリックでスクリプトを実行していませんでしょうか。
ダブルクリックの場合、実行フォルダがスクリプトのあるフォルダとは限りません。

投稿2018/04/19 03:44

kazto

総合スコア7196

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずエラーが
’ OSError: JPUSA.csv not found.’
なのでファイルが正常に読み込めていない事が要因と思います。
ファイルの存在とそのパスが正しいかを確認されるのが良いのでは?

投稿2018/04/19 03:44

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nini43

2018/04/19 03:53

パスが違っていたみたいです ありがとうございます
MasahikoHirata

2018/04/19 04:04

続いてのエラーは’CSV'の中に’漢字'が含まれていると考えます。 回避方法として’何番目’のデータに漢字が含まれているか?が分かれば'converter'を指定して変換する方法などがあります。 この辺りはググってみられては?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問