从另一个目录导入单个文件

Import a single file from another directory

我是 python 的新手,有些事情让我很困扰。我正在使用 pandas 读取 excel 文件。如果我的 excel 与我的 .py 文件位于同一目录中,那么一切正常。

我想知道的是获取位于完全不同路径中的文件的最佳方法是什么。我搜索了很多,但没有找到直接的答案。我看过 sys.append 的示例、外部库的示例等。我试图理解 pros/cons 以及每个解决方案。理想情况下,我希望将文件路径作为用户输入

sys.path 是 Python 尝试将 modulespackages 定位到 import 的位置 他们。当您尝试访问文件时不是文件。 (比如你的 excel 文件)

另一方面,open built-in 函数或 Pandas 读取函数需要 文件路径 。只要您使用绝对路径,就无需担心。

如果你想给它一个相对路径,首先检查你在哪里然后找到你的文件相对于你的工作目录。

使用 os.getcwd() 你可以获得当前的工作目录。

举个例子,假设我们有:

tmp/
└── inside_directory
    ├── pfile.py
    └── text.txt

如果我的终端指示我在 tmp 目录中并且我 运行 我的 pfile.py 有:

python inside_directory/pfile.py

pfile.py的内容为:

with open("text.txt") as f:
    print(f.read())

我会收到错误消息:FileNotFoundError: [Errno 2] No such file or directory: 'text.txt'

为什么?因为我用的是相对路径,tmp目录下没有text.txt

那有什么解决办法呢?

选项-1:使用open("inside_directory/text.txt")代替open("text.txt")

Option-2:首先转到 inside_directory 然后使用 open("text.txt") 和 运行 你的脚本 python pfile.py

Option-3: 使用绝对路径。无论您现在身在何处,都可以访问该文件。