2016-05-27 19 views
1

私は簡単な質問があります。使用'\''greenland.gdb\topology_check\t_buildings': 私は、文字列Sを分割しようとしていますPythonの区切り文字 ''で分割文字

 S.split('\') 

私は、出力リストを期待する:SyntaxError: EOL while scanning string literal

['greenland.gdb', 'topology_check', 't_buildings']. 

代わりに、それはエラーを返します。 Pythonで文字 '\'とは何ですか?それ以外の文字では正常に動作します。

答えて

3

あなたはバックスラッシュをエスケープする必要があります。

S.split('\\') 

ます。またstring_escapeする必要があるかもしれません:あなたは生の文字列を使用していた場合を除き

In [10]: s = 'greenland.gdb\topology_check\t_buildings' 

In [11]: s.split("\\") 
Out[11]: ['greenland.gdb\topology_check\t_buildings'] 

In [12]: s.encode("string_escape").split("\\") 
Out[12]: ['greenland.gdb', 'topology_check', 't_buildings'] 

\tはタブ文字として解釈されます:

In [18]: s = 'greenland.gdb\topology_check\t_buildings' 

In [19]: print(s) 
greenland.gdb opology_check _buildings 

In [20]: s = r'greenland.gdb\topology_check\t_buildings' 

In [21]: print(s) 
greenland.gdb\topology_check\t_buildings 

Escape characters

+0

動作しません。私はすでに試しました。 '\\'はそれ自身の別の文字です。 – Jio

+0

@Larry、そうではありません。異なる文字ではありません。文字通り '\\ 'を望むなら、それをエスケープする必要があります。 –

+1

意味があります。それはカスケードでエンコードし分割するメソッドで動作します。ありがとう! – Jio

関連する問題