我正在尝试获取当前工作目录并将其添加到带有
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
因为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% 的情况下使用路径时)。