今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作。

与Python内置函数相比这里这里的函数功能更多样化,功能也更强大。但是学习过程中我发现很多函数都是只适用于unix系统,可能因为它是开源系统,涉及权限的api都是开放的缘故吧。但也正是如此,当我们再Windows上学习Python时,本来这个板块就难以理解,还具有不可操作性。学起来感觉很受打击。

所以这里把Windows上能用,且适用的函数记录下来,以便于以后复习:

1,os.lseek(fd,pos,how) 方法用于设置文件描述符 fd 当前位置为 pos, how 方式修改。(与内置函数类似但是多了一个文件描述符,pos:0代表开头,1代表当前,2代表结尾,how用一个int型表示方式。例10表示从pos往后数10个字节的位置。)

2.os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。(使用方法os.listdir(path)在Linux中dir或者ls命令也是相同的效果)

3.os.lstat() 方法用于类似 stat() 返回文件的信息,但是没有符号链接。在某些平台上,这是fstat的别名,例如 Windows。

4,os.fstat() 方法用于返回文件描述符fd的状态,类似 stat()。

Unix,Windows上可用。

fstat 方法返回的结构:

  • st_dev: 设备信息

  • st_ino: 文件的i-node值

  • st_mode: 文件信息的掩码,包含了文件的权限信息,文件的类型信息(是普通文件还是管道文件,或者是其他的文件类型)

  • st_nlink: 硬连接数

  • st_uid: 用户ID

  • st_gid: 用户组 ID

  • st_rdev: 设备 ID (如果指定文件)

  • st_size: 文件大小,以byte为单位

  • st_blksize: 系统 I/O 块大小

  • st_blocks: 文件的是由多少个 512 byte 的块构成的

  • st_atime: 文件最近的访问时间

  • st_mtime: 文件最近的修改时间

  • st_ctime: 文件状态信息的修改时间(不是文件内容的修改时间)

(以上两个的使用方法相同,os.fstat(fd)    ,fd表示文件描述符   且返回内型也相同都是文件信息file=os.fstat(fd)      然后将其打印出来print(file.st_uid))

5,

os.mkdir() 方法用于以数字权限模式创建目录。默认的模式为 0777 (八进制)。

语法

mkdir()方法语法格式如下:

os.mkdir(path[, mode])

参数

  • path -- 要创建的目录

  • mode -- 要为目录设置的权限数字模式

(mkdir就是linux中建立文件夹的命令)

6,os.getcwd() 方法用于返回当前工作目录。

7,os.getcwdu() 方法用于返回一个当前工作目录的Unicode对象。

8,os.fsync() 方法强制将文件描述符为fd的文件写入硬盘(个人觉得这是一个很好的函数就相当与保存键Ctrl +s。使用方法为os.fsync())

9,os.chdir() 方法用于改变当前工作目录到指定的路径。(os.chdir(path)  将当前程序的文件直接换为path,这样就省去了要大量使用的绝对路径的必要。)

10,os.fchdir() 方法通过文件描述符改变当前工作目录。(os.fchdir(fd)这个函数与上面的函数主要区别是通过文件描述符改变。主要是当打开了多个文件时可能有会用到)

11,

os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。

语法

open()方法语法格式如下:

os.open(file, flags[, mode]);

参数

  • file -- 要打开的文件

  • flags -- 该参数可以是以下选项,多个使用 "|" 隔开:

    • os.O_RDONLY: 以只读的方式打开
    • os.O_WRONLY: 以只写的方式打开
    • os.O_RDWR : 以读写的方式打开
    • os.O_NONBLOCK: 打开时不阻塞
    • os.O_APPEND: 以追加的方式打开
    • os.O_CREAT: 创建并打开一个新文件
    • os.O_TRUNC: 打开一个文件并截断它的长度为零(必须有写权限)
    • os.O_EXCL: 如果指定的文件存在,返回错误
    • os.O_SHLOCK: 自动获取共享锁
    • os.O_EXLOCK: 自动获取独立锁
    • os.O_DIRECT: 消除或减少缓存效果
    • os.O_FSYNC : 同步写入
    • os.O_NOFOLLOW: 不追踪软链接

12,os.read() 方法用于从文件描述符 fd 中读取最多 n 个字节,返回包含读取字节的字符串,文件描述符 fd对应文件已达到结尾, 返回一个空字符串。(os.read(fd,n)

13,os.remove() 方法用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。(os.remove(path))

14,os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError。        os.rename(origalname,newname)

15,
os.rmdir() 方法用于删除指定路径的目录。仅当这文件夹是空的才可以, 否则, 抛出OSError

16,

os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度。

在Unix中有效。(本来以为是很有用的但是只能在unix中有效,但是os.write(fd,b'str'))及输入二进制的时候不会报错,但是实际上是不能输出的

最新文章

  1. 关于ThinkPHP在BAE上URL的rewrite问题
  2. android自定义控件(8)-利用onMeasure测量使图片拉伸永不变形,解决屏幕适配问题
  3. 网站全面采用UTF-8方法
  4. Shell编程基础教程1--Shell简介
  5. 升级到EF6 两个注意事项
  6. 一起来花5分钟写一个PHP入门Demo
  7. 《Effective C++ 》学习笔记——条款02
  8. asp.net MVC 路由机制 Route
  9. SQL笔记 --- 数据库设计步骤(转)
  10. Android打开/data/目录以及导出文件
  11. 进入PE后不显示硬盘的解决办法
  12. Spring知识点回顾(07)事件发布和监听
  13. 升级Mac OS X上的git
  14. C/S,B/S的应用的区别
  15. Git的常见基础操作命令
  16. cs特征性以及数据库的连接
  17. java多态性方法的重写Overriding和重载Overloading详解
  18. 【Coursera】SecondWeek(2)
  19. 【学习笔记】--- 老男孩学Python,day16-17 初识面向对象,类名称空间,查询顺序,组合
  20. C#8.0中的 await foreach

热门文章

  1. 深入理解泛型之JAVA泛型的继承和实现、泛型擦除
  2. 自制操作系统Antz(14)——实现内置编程语言(词法解析器)
  3. 一步步学会用docker部署应用(nodejs版)
  4. Mac提醒休息软件Stretchly(很好用)
  5. ECS之Git服务器搭建
  6. 王之泰201771010131《面向对象程序设计(java)》第十七周学习总结
  7. bzoj3527: [Zjoi2014]力 fft
  8. Vue路由(组件)懒加载(异步)
  9. vue--监听器
  10. glup简单应用---gulpfile.js