为了账号安全,请及时绑定邮箱和手机立即绑定

pathlib.Path.cwd() 返回什么?

pathlib.Path.cwd() 返回什么?

UYOU 2022-03-09 20:56:41
pathlib.Path.cwd() 根据我使用的计算机(两台 Windows PC - 一台在工作,一台在家里)返回不同的值。项目结构(见https://github.com/jonathanchukinas/file_read_exercise.git)file_read_exercise/初始化.y我的数据.xlsx初始化.pyread_excel_file.py仓/数据/初始化.py主文件main.py 和 read_excel_file.py 都包含: from pathlib import Path print(Path.cwd()) 在工作中,每个 python 文件都返回顶级目录的绝对路径。在家里,每个 python 文件都会返回其自己目录的绝对路径。我已经浏览了文档,我已经用谷歌搜索并搜索了堆栈溢出,但找不到这个问题的答案:cwd() 如何工作以便我可以更好地预测其结果?
查看完整描述

2 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

它返回当前工作目录,即运行脚本的目录。

例子:

  1. stradivari:~/Desktop/file_read_exercise$ python main.py

    应该返回路径~/Desktop/file_read_exercise

    cwd, when called from main, returns: /home/stradivari/Desktop/file_read_exercise
  2. stradivari:~/Desktop$ python ./file_read_exercise/main.py

    应该返回到我的桌面的路径:

    cwd, when called from main, returns: /home/stradivari/Desktop


查看完整回答
反对 回复 2022-03-09
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您可以使用此函数来建立路径而无需对其进行硬编码:


import pathlib


def find_path_to_file(file_name):

    globa_path = pathlib.Path.home()

    for path in sorted(globa_path.rglob('*')):

            if str(file_name) in str(path):

                return str(path)

如果将此函数与搜索文件放在同一文件夹中,也可以替换 cwd() 上的 home(),或者尝试使用 parent 参数:


def find_path_to_file(file_name):

    global_path = pathlib.Path.cwd()

    for path in sorted(global_path.rglob('*')):

            if str(file_name) in str(path):

                return str(path)

            else:

                for path in sorted(global_path.parent.parent.rglob('*')):

                    if str(file_name) in str(path):

                        return str(path)


查看完整回答
反对 回复 2022-03-09
  • 2 回答
  • 0 关注
  • 581 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信