【问题标题】:Split string by escape character通过转义字符拆分字符串
【发布时间】:2019-07-12 12:29:29
【问题描述】:

我正在尝试通过 Python 中的转义字符拆分字符串。

这是我一直在尝试的方式:

s = "C:\Users\as\Desktop\Data\pdf\txt\RTX_IDS_1DYS_20170610_0000_220279611-650000624200.txt"
s.encode("string_escape").split("\\")

当我运行它时,我收到以下错误:

s = "C:\Users\as\Desktop\Data\pdf\txt\RTX_IDS_1DYS_20170610_0000_220279611-650000624200.txt"
       ^
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape

【问题讨论】:

标签: python split unicode-escapes


【解决方案1】:

在你的字符串前面加上r——这将把它变成一个原始字符串,告诉python\是一个文字\

s = r"C:\Users\as\Desktop\Data\pdf\txt\RTX_IDS_1DYS_20170610_0000_220279611-650000624200.txt"
parts = s.split("\\")
print(parts)

输出:

['C:', 'Users', 'as', 'Desktop', 'Data', 'pdf', 'txt', 'RTX_IDS_1DYS_20170610_0000_220279611-650000624200.txt']

有关字符串前缀的更多信息,请参阅:

https://docs.python.org/3/reference/lexical_analysis.html#string-and-bytes-literals

【讨论】:

  • 谢谢!!我也在迭代一个字符串列表。有没有办法将它们转换为原始字符串?怎么可能在字符串前面加上r
  • 您只需要字符串字面量的前缀(之后不能添加前缀)。如果您以编程方式填充了 str 变量,则特殊字符已在内部转义,因此不需要前缀。可以用repr检查转义,例如:print(repr(r"C:\users")) 输出:'C:\\users'
猜你喜欢
  • 2016-04-28
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
  • 2013-03-03
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 1970-01-01
相关资源
最近更新 更多