替换 os.getcwd() 中的斜杠“\”

问题描述 投票:0回答:1

我正在尝试获取当前工作目录并将其添加到带有

os.getcwd
的文件路径中。因为 Windows 在目录路径中使用正斜杠,所以我需要将所有这些斜杠更改为反斜杠,以便它在 python 中工作。

我尝试过的:

import os

old = getcwd()

new = old.replace("\", "/")

file_path = (new + "folder/filename")

print(file_path

上面抛出了错误

SyntaxError: EOL while scanning string literal

python python-3.x
1个回答
5
投票

因为windows在目录路径中使用正斜杠

它没有——它使用 反斜杠(但它也接受正斜杠)。

无论操作系统如何,以下功能均有效:

from pathlib import Path

file_path = Path('folder', 'filename').absolute()
# or:
file_path = Path('folder/filename').absolute()
# or:
file_path = (Path() / 'folder' / 'filename').absolute()

大多数时候你甚至不需要调用

.absolute()
,因为使用相对路径通常很好,除非你打算更改工作目录,或者你需要以某种方式保留/打印路径这与当前工作目录无关。

上述解决方案使用

pathlib
库中的强类型路径。

或者您可以使用“旧版”

os.path
功能:

import os

file_path = os.path.join(os.getcwd(), 'folder', 'filename')
# or:
file_path = os.path.join(os.getcwd(), 'folder/filename')

…无论哪种方式,您遇到的具体错误是因为您尝试在 Python 字符串中使用未转义的反斜杠。由于字符串中的反斜杠具有特殊含义,因此需要转义其用法:使用

"\\"
而不是
"\"
。但如上所述,这在这里无关紧要(99% 的情况下使用路径时)。

© www.soinside.com 2019 - 2024. All rights reserved.