繁体   English   中英

查找绝对文件路径

[英]Finding absolute file path

我一直在研究这个 Python 项目,刚刚意识到存在一个问题。 起初我以为它只是在 Linux 中,因为我试图创建一个命令来打开文件路径中的文件,然后意识到当它在目标文件夹之外的任何时间运行时,即使在 Windows 中它也会运行错误。 所以它必须是我的代码的一般问题。 基本上我试图调用程序从文本文件中读取和打印数据。

help_text = open("files/help_text.txt","r") 
help_text_content = help_text.read()
print(help_text_content)

我想要做的就是确保无论.py文件位于何处,它都能读取文件。 我不能做C:\\Location因为如果用户安装文件它可能位于其他地方。 所以我需要一个知道文件本身在哪里的绝对位置读取器。

在 Python 中处理文件路径的最佳方法是使用pathlib 这确保处理使用正确的路径分隔符等的所有细节。 我会使用这样的代码:

import pathlib

# path of the current script:
parent = pathlib.Path(__file__).parent

help_file = parent / 'files' / 'help_text.txt'

# note: you can check that this file exists
if not help_file.is_file():
    raise FileNotFoundError('Help file not found')

with help_file.open() as f:
    help_text_content = f.read()

print(help_text_content)

我想可能使用os模块可以帮助您获取当前工作目录文件,然后您可以附加help_text.txt以获取位置:

import os
current_dir = os.getcwd()
# /C:/User/
path= os.path.join(current_dir, "help_text.txt")
# /C:/User/help_text.txt

根据注释中提供的信息(txt 文件始终位于 files/ 中,它始终与 .py 文件配对)-您需要获取 py 文件的位置。 请注意,它可能(并且在出现此错误的情况下显然是)与您执行 py 脚本的当前工作目录不同。 有关扩展讨论,请参阅如何获取当前正在执行的文件的路径和名称?

然后你需要将 py 文件的路径和"files/help_text.txt" 当然,您可以使用标准库中的os模块或(更好的) pathlib模块。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM