- csvを読み込みたい。
- ファイルによって文字コードはまちまち
- ファイル名に
␣
がある
ときのはなし
import pathlib
import subprocess as sp
path_file = pathlib.Path('hoge hoge.csv')
encoding = sp.getoutput('nkf -g ' + str(path_file))
df = pd.read_csv(path_file, encoding=encoding)
とかくと、subprocessの方でエラー
import pathlib
import subprocess as sp
path_file = pathlib.Path('hoge\ hoge.csv')
encoding = sp.getoutput('nkf -g ' + str(path_file))
df = pd.read_csv(path_file, encoding=encoding)
(hoge
とhoge
の間を\␣
にした)
とかくと、pd.read_csvの方でエラー
怒った!!!!!
怒りのハードコーディングで解決(べつにそんなハードでもないけど)
import pathlib
import subprocess as sp
path_file = pathlib.Path('hoge hoge.csv')
encoding = sp.getoutput('nkf -g ' + str(path_file).replace(' ', '\ ')))
df = pd.read_csv(path_file, encoding=encoding)
ただ、␣
を\␣
に置換しただけ。
許せない…!
なんでシステムが自動で入れるフォルダ名に␣
があるのだ。
私…全てのファイル名に紛れている␣を、生まれる前に消し去りたい。全ての宇宙、過去と未来の全てのファイル名に紛れている␣を、この手で。
追記(2017/06/01 17:50)
@shiracamus 氏のコメントを参考に、
encoding = sp.check_output(['nkf', '-g', str(path_file)])
とすれば動きました。
ドキュメントを読んでもgetoutput
とcheck_output
の違いは分からず…。
勉強が足りませんな。