python-OS模块以及路径问题

注:2019-09-22,自己写代码的时候,很少会用到这个模块,很多开源代码都会使用,方便相关文件的直接使用,而不是像自己写代码的时候直接到 文件那里copy path 然后 ctrl+v。 查阅了官网资料等等,一些博客瞎写一通屁用没有。我也就不祸害人了

参考博客:点这里,务必自己创建个项目试一下。

A ,os模块使用方法

1

常用方法

#!/user/bin/python
#coding= utf-8
 
import os
----------------------------------
a= os.path.abspath("os.path.py")
#返回当前路径的绝对路径
print os.path.abspath(a)
#返回路径名称的最后一个文件名或目录名称
print os.path.basename(a)
#返回上层完整路径名称
print os.path.dirname(a)
#判断指定路径或者文件是否存在
print os.path.exists("E:\pycharm\python\study")
#返回文件大小
print os.path.getsize("os.path.py")
#判断是否为绝对路径
print os.path.isabs("E:\pycharm\python\study\os.path.py")
#判断路径是否为文件
print os.path.isfile("E:\pycharm\python\study\os.path.py")
#判断路径是否为目录
print os.path.isdir("E:\pycharm\python\study")
#将路劲分割成目录和文件组成一个元组
print os.path.split("E:\pycharm\python\study\os.path.py")
#将路径和文件组成一个完整路径
print os.path.join("E:\pycharm\python\study","os.path.py")

2

Python的标准库中的os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux和Windows下运行。

#路径分隔符,输出为“\”
print os.sep
#输出系统的名称,window输出为“nt”,linux等为‘posix’
print os.name
#获取当前工作目录
print os.getcwd()
#设置一个环境变量
#print os.putenv(1,'rr')
#获取一个环境变量如果没有则返回none
#print os.getenv()
#返回指定目录下所有的文件名和目录名
print os.listdir("E:/")
#删除一个文件
print os.remove()
#运行shell命令
os.system("cd /  && ls")
#返回到当前工作目录
os.curdir
#改变工作目录到。。。
os.chdir("E:/pycharm/python/study/os.py")
#创建文件夹
os.makedirs("/root/33")

用到什么就去查,不需要拼命记住。

B ,路径问题【相对/绝对】

引:在debug过程中,报错文件不存在。后在console中os.path.exists()测试了一下返回True没有问题。后来在群里请教了一下,如下图(请忽略后缀问题,不影响)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大佬给出了关键词,下一步自然就是去google了,点击这里
绝对路径就是文件的真正存在的路径,是指从硬盘的根目录(盘符)开始,进行一级级目录指向文件。
相对路径就是以当前文件为基准进行一级级目录指向被引用的资源文件。

以下是常用的表示当前目录和当前目录的父级目录的标识符

../ 表示当前文件所在的目录的上一级目录
./ 表示当前文件所在的目录(可以省略)
/ 表示当前站点的根目录(域名映射的硬盘目录)

最省事的办法就是定义一个 当前的绝对路径,如下

import os
path1=os.path.abspath('.')   #表示当前所处的文件夹的绝对路径
path2=os.path.abspath('..')  #表示当前所处的文件夹上一级文件夹的绝对路径
A:      file_path = os.path.join(path1, "data\data\example.train") 
B:      file_path = os.path.join(path2, "data\data\example.train")
A不行就试试B,都可以灵活变动【看你运行位置以及相关文件的位置】

调试成功。因为比较懒,暂时没有去想大佬那个解决方案,日后再看。

使用OS模块好处就是不需要自己copy路径,或者代码给别人用的时候出现出差错,如果整个项目包给他的时候文件可以直接open而不会出错,便可以实现跨平台运行。

发布了48 篇原创文章 · 获赞 9 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/NewDreamstyle/article/details/101148585