Python Basics


Python多层引用问题

  1. python被run的.py文件即为当前程序的主程序。其所在的目录即为python解释器的当前路径
  2. 通过 from a import b方法调用时, a的位置必须和主程序的.py文件在同一目录。
  3. 通过frome .x import y方法调用时,x文件必须是在python解释器当前路径(主程序所在目录)的下级目录(下几级都可以)。

文件的调用

★★★为了使得代码具有可打包性(可打包成可执行文件)。在编写文件调用代码时,需要避免直接使用文件的相对路径调用文件, 应该通过获取文件当前绝对路径, 再使用文件的绝对路径调用文件。

  1. 文件的绝对路径的获取需要用到两个python标准库sysos
  2. 代码示例:
    import sys
    import  os
    
    BASE_DIR = os.path.dirname(os.path.realpath(sys.argv[0]))
    filename = input("请输入你要使用的文件名:")
    FILE_DIR = os.path.join(BASE_DIR, filename)
    
    • sys.argv[0]用于是获取程序名称
    • os.path.realpath()用于获取在系统中的绝对路径, 将其与sys.argv[0]结合使用从而获得该程序的绝对路径
    • os.path.dirname()用于获取所在文件夹, 与os.path.realpath(sys.argv[0])从而获取当前程序所在文件夹的绝对路径
    • os.path.join(path1, path2)用于将path1path2连接起来, 组成一个新的路径
    • 通过以上方法调用文件, 即使通过单文件打包的方式打包python程序, 也能找到与可执行文件处于同一目录中的其他文件

  目录