【问题标题】:python str.replace does not work with '\' [duplicate]python str.replace 不适用于'\' [重复]
【发布时间】:2021-03-10 13:27:53
【问题描述】:

df['2'] 列中,我有一个带有文件名的路径:

C:\file1.txt

下面的代码我想拆分文件名:

df['2'].str.split('', n = 2, expand = True)

我收到此错误:

 File "<ipython-input-136-fe70d6bdb12c>", line 1
    df['2'].str.split('\', n = 2, expand = True)
                                                           ^
SyntaxError: EOL while scanning string literal

我做错了什么?它适用于我放在那里的所有其他字符串。

【问题讨论】:

  • 您需要使用 '\\' 将 '\' 转义为:df['2'].str.split('\\', n = 2, expand = True)

标签: python string split


【解决方案1】:

而不是 df['2'].str.split('\', n = 2, expand = True) 尝试 df['2'].str.split(chr(92), n = 2, expand = True)

【讨论】:

    【解决方案2】:

    您正在使用 \ 转义 ' 字符,因此字符串文字无效并且解释器发现语法错误

    我建议使用os.path 对路径名进行这种操作,这很简单,而且它适用于每个操作系统。

    【讨论】:

      【解决方案3】:

      如果您使用的是 python 3.4 或更新版本,则内置的 pathlib 库非常适用于路径。它消除了 / 和 .为了让您的实现生效,cmets 中的 Krishnas 建议应该可以解决问题。

      无论如何,这里是如何使用 pathlib 执行此操作:

      from pathlib import Path
      
      filename = Path(df['2'].str).stem
      

      https://docs.python.org/3/library/pathlib.html

      【讨论】:

        猜你喜欢
        • 2021-09-25
        • 2019-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-22
        • 2016-10-08
        • 2018-03-14
        • 2015-11-08
        相关资源
        最近更新 更多