在 Python 中的相对位置打开文件

新手上路,请多包涵

假设我的 python 代码在一个名为 main 的目录中执行,并且应用程序需要访问 main/2091/data.txt

我应该如何使用 open(location) ?参数 location 应该是什么?

我发现下面的简单代码可以工作..它有什么缺点吗?

 file = "\2091\sample.txt"
path = os.getcwd()+file
fp = open(path, 'r+');

原文由 user845459 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 488
1 个回答

对于这种类型的事情,您需要注意您的实际工作目录是什么。例如,您可能不会从文件所在的目录运行脚本。在这种情况下,您不能只使用相对路径本身。

如果你确定你想要的文件在脚本实际所在的子目录下,你可以使用 __file__ 来帮助你。 __file__ 是您正在运行的脚本所在位置的完整路径。

所以你可以摆弄这样的东西:

 import os
script_dir = os.path.dirname(__file__) #<-- absolute dir the script is in
rel_path = "2091/data.txt"
abs_file_path = os.path.join(script_dir, rel_path)

原文由 Russ 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题