在python中的定界符'\'处分割字符串

Jio*_*Jio 3 split python-2.7

我有一个快速的问题。我正在尝试'greenland.gdb\topology_check\t_buildings''\'使用时拆分字符串S :

     S.split('\')
Run Code Online (Sandbox Code Playgroud)

我期望输出列表:

 ['greenland.gdb', 'topology_check', 't_buildings']. 
Run Code Online (Sandbox Code Playgroud)

而是返回错误:SyntaxError: EOL while scanning string literal。python中的字符“ \”是什么。与任何其他字符一起使用都可以。

Pad*_*ham 5

您需要转义反斜杠:

 S.split('\\')
Run Code Online (Sandbox Code Playgroud)

您可能还需要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']
Run Code Online (Sandbox Code Playgroud)

\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
Run Code Online (Sandbox Code Playgroud)

转义字符