在python中从其他文件夹调用函数时,如何处理相对路径



问题

  • 我在文件夹a的readTool.py中有一个readtxt(路径(函数
# inside a .py file in Folder A
def readtxt(path):
flat_matrix = np.loadtxt(path, skiprows=0, comments='#')
return flat_matrix
  • 我在文件夹B中使用此函数,并使用相对路径(路径基于文件夹B(
# run from Folder B
matrix1 = readtxt(a_relative_path_in_B)
  • 但是readtxt函数读取的文件具有基于文件夹a的相对路径

问题

  • 那么,如果我决定给readtxt(路径(函数一个相对路径,我该如何避免这种误解呢

Python总是使用相对于运行的脚本位置的文件夹,因此您会遇到正常行为。为了避免这些问题,最容易使用绝对路径,这些路径可以在从不同文件夹运行的脚本之间通用:

import os
working_dir = os.getcwd()
absolute_path = os.path.join(working_dir, "a_relative_path_in_B")
matrix1 = readtxt(absolute_path)

相关内容

  • 没有找到相关文章