open関数を使うとエラー (unicode error) が出てしまいます


pythonでボタンを押すと指定したファイルを開く簡単なランチャーを作ろうとしたのですが、

[code]

    f = open("C:\Users\hoge\Documents\python programs", "r", encoding="utf-8")
    
[/code]

の部分で

[code]

    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-4: truncated \UXXXXXXXX escape
    
[/code]

というエラーが出てしまいます。どうすれば解決できるでしょうか。




文字列リテラル中の`\`はエスケープに使われます。  
例えば `\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 がよろしくやってくれると思います)

あたりでしょうか。




文字列リテラル中の`\`はエスケープに使われます。  
例えば `\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 がよろしくやってくれると思います)

あたりでしょうか。

