命令: pyinstaller --windowed --onefile --clean --noconfirm target.py
问题: 如果,打包使用绝对路径会出现每更换一台电脑,而且脚本中需要调用资源文 件,就要重新进行配置路径;
解决方法:获取脚本运行的当前路径,在用于其他资源调取的路径
命令:import os, sys
path = os.path.dirname(os.path.dirname(os.path.realpath(sys.executable)))
path 获取的是脚本运行当前路径的上一级路径;
后面调用文件路径根据文件夹和脚本的层级关系,随意更换path
相对路径是相对脚本文件来的。
比如脚本在C:/python目录下,相同目录下有一个文件叫test.txt
那么绝对路径就是 C:/python/test.txt,相对路径就是test.txt
使用脚本 open('C:/python/test.txt','r') 和 open('test.txt','r')效果都是一样的
我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file = new File(“a.txt”)
File.createNewFile()
假设jvm是在”D:\”下启动的,那么a.txt就会生成在D:\a.txt
此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”.\”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:
File f = new File(“.”)
String absolutePath = f.getAbsolutePath()
System.out.println(absolutePath)//D:\
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”
python写绝对路径和相对路径的方法:
绝对路径是指从系统盘一直到文件所在位置的路径,例如:“D:xmtitleprojectpycnvideo.txt”
相对路径是指相对于.py文件的路径,例如:“pycnvideo.txt”
示例如下:
相对地址
file = open("ax.txt", 'r')
a = file.read()
print("a =", a)
file.close()
绝对地址
file2 = open("C:UserszhoubDesktop项目ax.txt", 'r')
b = file2.read()
print("b =", b)
file2.close()
执行结果如下:
想了解更多python知识,请观看零基础入门Python项目实战视频!!