首页 > 解决方案 > 将字符串从 '\' 替换为 '/' Python

问题描述

我一直在努力处理一些需要在 Python 中简单更改\为的代码。/它是文件的路径-Python 不会以 Windows 的方式读取文件的路径,所以我只想更改 Python 的 Windows 路径以正确读取文件。

我想从游戏中解析一些文本来统计统计数据。我这样做:

import re

pathNumbers = "D:\Gry\Tibia\packages\TibiaExternal\log\test server.txt"
pathNumbers = re.sub(r"\\", r"/",pathNumbers)

fileNumbers = open (pathNumbers, "r")

print(fileNumbers.readline())
fileNumbers.close()

但我回来的错误是

----> 6 fileNumbers = open (pathNumbers, "r") OSError: [Errno 22] Invalid argument: 'D:/Gry/Tibia/packages/TibiaExternal\test server.txt'

问题是,该函数re.sub().replace(),给出相同的结果——几乎完整的路径被替换,但最后一个要更改的字符始终保持不变。

您对此有什么解决方案,因为似乎更改这些字符对于 python 来说是一个敏感点。

标签: python

解决方案


简单的回答:

如果您想在不同平台上使用路径,请将它们与

os.path.join(path,*paths)

这样,您根本不必使用不同的分隔符。


回答你打算做什么

实际的问题是,您的pathNumbers变量不是原始r的(定义前导),这意味着反斜杠被用作转义字符。在大多数情况下,这不会改变任何内容,因为与以下字符的组合没有任何意义。\t制表符,\n将是换行符,所以这些不再是简单的反斜杠字符。

所以简单地写

pathNumbers = r"D:\Gry\Tibia\packages\TibiaExternal\log\test server.txt"

推荐阅读