从另一个目录导入单个文件
Import a single file from another directory
我是 python 的新手,有些事情让我很困扰。我正在使用 pandas 读取 excel 文件。如果我的 excel 与我的 .py 文件位于同一目录中,那么一切正常。
我想知道的是获取位于完全不同路径中的文件的最佳方法是什么。我搜索了很多,但没有找到直接的答案。我看过 sys.append 的示例、外部库的示例等。我试图理解 pros/cons 以及每个解决方案。理想情况下,我希望将文件路径作为用户输入
sys.path
是 Python 尝试将 modules 或 packages 定位到 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: 使用绝对路径。无论您现在身在何处,都可以访问该文件。
我是 python 的新手,有些事情让我很困扰。我正在使用 pandas 读取 excel 文件。如果我的 excel 与我的 .py 文件位于同一目录中,那么一切正常。
我想知道的是获取位于完全不同路径中的文件的最佳方法是什么。我搜索了很多,但没有找到直接的答案。我看过 sys.append 的示例、外部库的示例等。我试图理解 pros/cons 以及每个解决方案。理想情况下,我希望将文件路径作为用户输入
sys.path
是 Python 尝试将 modules 或 packages 定位到 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: 使用绝对路径。无论您现在身在何处,都可以访问该文件。