2017-01-26 16 views
0
私は自動的にいくつかのファイルをインポートするために検索してきた

を無視するが、私はWindows上でだので、私はUnicodeのエラーを得た(理由の「C:\ Users \ユーザー...」)。 私はこのエラーを修正するために探していました(r "MyString"または未使用およびユニコード文字列の場合 "MyString"を使用しています)、このページ(https://docs.python.org/3/howto/unicode.html)に送られました。Pythonは自動的にUnicode文字列

しかし、私の問題は自動的にいくつかのファイルをインポートするには、GUIインターフェイスについてですから、私はそれを行う方法を考え出したていません。

私は右ここにあなたに私のヒントを残しておきます。これら二つの

file = file.replace('\\', '//') 

file = r"MyFilePath" 

file = u"MyFilePath" 

file = os.path.abspath("MyFilePath") 

file = "MyFilePath".decode('latin1') 
""" isn't correct because a string has no attribute 'decode' of course """ 

一つはいいことのようですが、私はPythonは私がの後ろにパスをコピーすることを理解できるようにする方法がわかりませんRまたはU

やPythonを指示する方法があります:

file = StopThinkingWithUnicode("MyFilePath") 

私もこのリンク(​​)を参照してくださいましたが、動作しません。どちらも(私が原因Python2の印刷()関数を修正しました0.7書き込みと私は3.5によ)

私はそれがあるので、そこにトレースバックを投稿する忘れてしまった:

MyFilePath = "C:\Users\MyUser\Desktop\Projet\05_Statistiques\Data\MyFileName.xlsx" 
    File "<ipython-input-13-d8c2e72a6d3f>", line 1 
    MyFilePath = "C:\Users\MyUser\Desktop\Projet\05_Statistiques\Data\MyFileName.xlsx" 
      ^
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape 

誰かがいくつかのヒントやリンクを私と一緒に私を助けてもらえますか? ありがとうございます。

PS:私は、スクリプトの最初の行に設定しようとしました:

# -*- coding: latin-1 -*- 

(私が持っている* .xl、* .CSV、* .sas7bdat、* .txtファイル)

+0

だけ使用/または\\ではなく、\ –

+0

のユーザーがそれを実行する必要はありません、それが主な問題@JayParikh –

答えて

2

これは、Windowsパスで非常に頻繁に発生する問題です。私は人々がそれにつまずいていると思うし、エスケープシーケンス(\n\t\b\a\v\x ...)に一致する "迷惑な"小文字を大文字で入れて方法を見つけ出す。これは、\U(ユニコードのエスケープシーケンス)と\Nを除いて動作します。

真の解決策は、文字通りのバックスラッシュを治療するための接頭辞を使用することです:

MyFilePath = r"C:\Users\MyUser\Desktop\Projet\05_Statistiques\Data\MyFileName.xlsx" 
      ^

EDIT:大文字の確認により、バグ回避」についての私の理論をこの質問にパスをチェックしてください:Largest number of rows in a csv python can handle?

+0

の一つだあなたは(MyFilePathが実際にユーザによって選択され、連結R +「MyFilePath」でソートする方法を知っていますかエクスプローラーと一緒に)?(タイプしないで私がここで行ったように - ソロそれは明確ではなかった場合はRY)私は「」.join([「R」+ MyFilePath])を使用してみましたが、理由はUnicodeのエラーのため、MyFilePathは –

+0

ネヴァーマインドが処理されないことのTkinterは、ファイルのパスを返すことができます見つけます"\"を "/"(http:// stackoverflow)に自動的に変換します。コム/質問/ 3579568 /を選択-ファイルインのpython-と-単純ダイアログを誰かがそれを探している場合)、ジャン=フランソワ・ファーブル –

+0

@StevenS @ 感謝。生の文字列は、ソースコード内で文字列定数を作成するための* only *です。ユーザーがGUIからファイル名を入力している場合、文字列は正しいでしょう。あなたの問題は、おそらく文字列を結合することです。ユーザーがやっていることを表現していない曖昧なハードコードされた例ではなく、あなたが実際にしようとしていることの**小さな**例を表示してください。 –

関連する問題