Pathlib访问路径时出错路径.父对象

2024-06-16 12:28:12 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么在Python IDE(PyCharm)中运行以下代码片段:

import os
from pathlib import Path

if os.path.isfile('shouldfail.txt'):
    p = Path(__file__).parents[0]
    p2 = Path(__file__).parents[2]
    path_1 = str(p)
    path_2 = str(p2)

    List = open(path_1 + r"/shouldfail.txt").readlines()
    List2 = open(path_2 + r"/postassembly/target/generatedShouldfail.txt").readlines()

它可以正常工作并返回所需的结果,但是当我通过命令行运行脚本时,我得到了错误:

^{pr2}$

我错过了什么? 还有没有更好/更简单的方法可以将两个文件夹从我运行脚本的当前路径上移(在脚本内部)?在


Tags: pathimporttxt脚本osopenidepycharm
1条回答
网友
1楼 · 发布于 2024-06-16 12:28:12

__file__可以是相对路径,它是只是Script.py(如回溯所示)。在

首先将其解析为绝对路径:

here = Path(__file__).resolve()
p = here.parents[0]
p2 = here.parents[2]

{cd3>不需要转换这些对象。在

换言之,以下工作:

^{pr2}$

(打开文件对象上的调用列表提供所有行)。在

演示:

>>> from pathlib import Path
>>> Path('Script')
WindowsPath('Script')
>>> Path('Script').resolve()
WindowsPath('C:\\Users\\Bob\\Further\\Path')
>>> Path('Script').resolve().parents[2] / 'shouldfail.txt'
WindowsPath('C:\\Users\\Bob\\shouldfail.txt')

相关问题 更多 >