在操作系统处理目录相关的观念中:有两个特殊的符号: “.” 与“…”。
“.”:表示当前目录。
“…”:表示上一级目录。
笔记要点
- 关于文件读写的编码问题,默认是采用系统平台的编码(Windows操作系统通常是GBK)
- 文件内容换行符的问题。Windows系统是\r\n,而Linux系统是\n。
- 程序的当前工作目录,一般是说发起启动程序的命令时所在的目录(很可能不是应用程序所在的目录),所以有时候我们的一些操作,如打开文件或者保存文件这些操作没有具体指定相应的路径时,其默认就是在当前工作目录下找,因此,有时候会出现我已经把文件跟程序放在一起了,但是还是找不到文件,或者保存的时候到程序所在目录去,结果找不到。这是因为我们在开发时,一般都是在程序所在目录下,那么开发启动测试时也是在这个目录下,文件自然就找到了,有种思维定式了。但是有时候我们可能通过控制台或是一些其他方式启动(总之就是不在程序代码所在目录启动),这时就有可能找不到了,这个解决的方式除了明确指定,还可以在我们主程序代码那里添加一句代码os.chdir(‘路径信息’) 将我们的工作目录切换到应用程序所在目录。
os 与 os.path 模块
获取当前工作目录os.getcwd()
注意:这个当前工作目录是指我们执行程序(或者说启动程序)时我们所在的目录,不一定是程序所在目录(即代码所在路径)。恩,这个话感觉有点拗口,不知道咋说了。用代码示例说明一下:
程序文件所在的路径 D:/gitLocalRep/venv-lincms/pytest/filetest.py 文件内容如下,就一句。
import os
print("利用os.getcwd()获取当前工作目录:", os.getcwd())
在CMD控制台窗口运行这个python文件,当然每次运行py代码前CMD都会先切换到不同目录下,运行结果如下:
可以看到,os.getcwd() 返回的目录路径信息与我们在CMD所切换进入的目录是一样。
- 在C:\Users\Administrator目录下执行这个文件,os.getcwd()获取到的就是C:\Users\Administrator这个目录。
- 在d:下执行,os.getcwd()获取到的就是d:
- 如果切换到代码所在目录,则os.getcwd()得到的就是代码所在目录
【重点】程序的当前工作目录,一般是说发起启动程序的命令时所在的目录(很可能不是应用程序所在的目录),所以有时候我们的一些操作,如打开文件或者保存文件这些操作没有具体指定相应的路径时,其默认就是在当前工作目录下找,因此,有时候会出现我已经把文件跟程序放在一起了,但是还是