首页 > 解决方案 > 替换 os.getcwd() 中的斜杠“\”

问题描述

我正在尝试获取当前工作目录并将其添加到带有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

标签: pythonpython-3.x

解决方案


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

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

无论操作系统如何,这都有效:1

import os

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

…但是你得到的具体错误是因为你试图在 Python 字符串中使用未转义的反斜杠。由于字符串中的反斜杠具有特殊含义,因此需要对其用法进行转义:使用"\\"而不是"\". 但如上所述,这在这里无关紧要(99% 的时间都在使用路径)。


1更简洁的方法是 via pathlib,它使用正确类型的对象来编码路径,而不是字符串:

import pathlib

file_path = pathlib.Path('.').absolute() / 'folder' / 'filename'

推荐阅读