python - 替换 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
解决方案
因为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'
推荐阅读
- php - 安装 Google 客户端库时出错
- javascript - 函数返回承诺{
} 在 JavaScript 中 - python - 值错误:y 包含以前看不见的标签:
- python - 我们如何使用 python 找到这个方程的答案?
- keyboard - ESP32-S2 作为 USB 键盘
- postgresql - R2DBC - PostgreSQL - 无法交换消息,因为超出了请求队列限制
- sql - 删除表时是否可以自动删除触发器和序列
- git - git如何处理文件删除和重新添加?
- web-crawler - 如何在不知道应用名称的情况下爬取apps.apple?
- c - 为什么输出显示 3 1 3 任何人都可以在 C 中帮助我