windows 如何使用相对路径

23c0lvtd  于 2023-02-05  发布在  Windows
关注(0)|答案(3)|浏览(275)

我最近做了一个小程序(.py),它从同一文件夹中的另一个文件(.txt)获取数据。
Python文件路径:"C:\Users\User\Desktop\Folder\pythonfile.py"
文本文件路径:"C:\Users\User\Desktop\Folder\textfile.txt"
所以我写了:with open(r'C:\Users\User\Desktop\Folder\textfile.txt', encoding='utf8') as file
它的工作,但现在我想取代这个路径与相对路径(因为每次我移动文件夹,我必须改变路径在程序中),我不知道如何...或是否可能...
我希望你能提出一些建议...(我希望它是简单的,我也忘了说,我有windows 11)

46qrfjad

46qrfjad1#

使用os,您可以执行以下操作

import os

directory = os.path.dirname(__file__)
myFile = with open(os.path.join(directory, 'textfile.txt'), encoding='utf8') as file
ktca8awb

ktca8awb2#

如果你把一个相对文件夹传递给open函数,它会在loacl目录中搜索它:

with open('textfile.txt', encoding='utf8') as f:
    pass

不幸的是,这只在你从文件夹启动脚本时才有效。如果你想更通用,并且你想不管你从哪个文件夹运行它都能工作,你也可以这样做。你可以通过__file__内置变量获得python文件的路径。pathlib模块提供了一些有用的函数来获得父目录。把所有这些放在一起,你可以做到:

from pathlib import Path

with open(Path(__file__).parent / 'textfile.txt', encoding='utf8') as f:
    pass
t98cgbkg

t98cgbkg3#

import os

directory = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(directory, 'textfile.txt')

with open(file_path, encoding='utf8') as file:
    # and then the code here

相关问题