1.常用方法介绍
# coding:utf-8
import json
import scrapy
import os
import stat
import sys
# 1.检验权限模式
# 1.def access(path, mode)
# 1.path:字符串(string)或者字节(bytes)
# 1.mode:os.F_OK(测试文件是否存在0)
# 1. os.R_OK(测试是否可读4) | os.W_OK(测试是否可写2) | os.X_OK(测试是否可执行1)
print(os.access("E:\\Python\\课程代码\\a.txt", os.F_OK))
print("*" * 98)
# 2.返回当前工作目录
# 2.def getcwd(*args, **kwargs)
print(os.getcwd())
print("*" * 98)
# 3.改变当前工作目录
# 3.def chdir(path)
# 3.def chdir(*args, **kwargs)
# 3.path常为字符串。某些平台也可为一个打开的文件描述符。路径错误时引发FileNotFoundError异常
print(os.chdir("E:\\Python\\课程代码"))
print(os.chdir("E:\\Python\\课程代码\\test"))
print(os.getcwd())
print("*" * 98)
# 4.以mode权限创建一个名为path的文件夹
# 4.def mkdir(path, mode)
# 4.def mkdir(*args, **kwargs)
# 4.默认的 mode 是 0777 (八进制),且该参数在windows平台被忽略可不填
print(os.mkdir("E:\\Python\\课程代码\\test\\mx_xin"))
print("*" * 98)
# 5.删除path指定的空目录,若目录非空则抛出OSError异常
# 5.def rmdir(path)
# 5.def rmdir(*args, **kwargs)
# 5.目录非空抛出OSError异常;目录不存在抛出FileNotFoundError异常
print(os.rmdir("E:\\Python\\课程代码\\test\\mx_xin"))
print(os.rmdir("E:\\Python\\课程代码\\test\\ma_xin"))
print("*" * 98)
# 6.打开一个文件,并设置需要的打开选项,返回一个整数型的文件描述符
# 6.def open(file, flags, mode)
# 6.def open(*args, **kwargs)
# 6.file:要打开的文件 | flags:os.O_RDONLY: 以只读的方式打开 os.O_WRONLY: 以只写的方式打开
# os.O_RDWR : 以读写的方式打开 os.O_NONBLOCK: 打开时不阻塞
# os.O_APPEND: 以追加的方式打开 os.O_CREAT: 创建并打开一个新文件
# 6.多个权限之间可用 | 分隔(os.O_RDONLY | os.O_WRONLY)
fd = os.open("E:\\Python\\课程代码\\test\\mx.py", os.O_RDWR)
print(fd)
print("*" * 98)
# 7.写入bytes对象到文件描述符fd中,返回实际写入的文件描述符长度
# 7.def write(fd, bytes(str, encoding="utf-8"))
# 7.def write(*args, **kwargs)
print(os.write(fd, bytes("str='hello world'", encoding="utf-8")))
# 8.从文件描述符fd中读取最多n个字节,返回包含读取字节的bytes对象(字符串)(fd起始位置位于末尾,返回空字符串)
# 8.def read(fd, n)
# 8.def read(*args, **kwargs)
ret = os.read(fd, 20)
ret2 = os.read(fd, 5)
print(ret)
print(ret2)
print(type(ret))
print("*" * 98)
# 9.关闭指定的文件描述符fd
# 9.def close(fd)
# 9.def close(*args, **kwargs)
# 9.无返回值
print(os.close(fd))
print("*" * 98)
# 10.更改文件或者目录权限
# 10.def chmod(path, mode)
# 10.def chmod(*args, **kwargs)
# 10.无返回值
# 10.删除或添加目录中的文件必需同时具有写和执行权限
print(os.chmod("./mx.py", stat.S_IXGRP | stat.S_IWGRP))
# 11.修改当前进程的更目录为指定目录(需要管理员权限)
# 11.def chroot(path)
# 11.无返回值
print(os.mkdir("./ma_xin"))
print(os.chroot("./mx_xin"))
# 12.关闭所有在fd_low, fd_high之间的文件描述符
# 12.def closerange(fd_low, fd_high)
# 12.def closerange(*args, **kwargs)
# 12.文件描述符有误,抛出OSError异常
# 12.无返回值
print(os.closerange(0, 2))
# 13.复制文件描述符fd
fd1 = os.dup(fd)
os.dup2(fd, fd2)
# 14.删除路径为path的文件。如果path 是一个文件夹,将抛出OSError
# 14.def remove(path)
# 14.def remove(*args, **kwargs)
# 14.无返回值
# 14.os.removedirs(path)递归删除空文件夹。
print(os.remove("./remove_mx.py"))
# 15.以列表形式返回指定的文件夹包含的文件或文件夹的名字的列表(按照字母排序)
# 15.def listdir(path)
# 15.def listdir(*args, **kwargs)
dir_file = os.listdir(".")
for file in dir_file:
print(file)
# 16.重命名文件或者目录(src_name -> dst_name)
# 16.def rename(src_name, dst_name)
# 16.无返回值
# 16.def renames(old, new)递归重命名目录或文件
print(os.rename("./ma_xin", "./mxin"))
# 17.os.curdir 返回当前目录: ('.')
print(os.curdir)
# 18.os.pardir 获取当前目录的父目录字符串名:('..')
print(os.pardir)
19. os.makedirs('dirname1/dirname2') 可生成多层递归目录
print(os.makedirs(r"C:\a\b\c\d"))
20. os.stat('path/filename') 获取文件/目录信息
print(os.stat(r"C:\a\b"))
21. os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
print(os.sep)
22. os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
print(os.linesep)
23. os.pathsep 输出用于分割文件路径的字符串。 os.path: 打印全部的环境边境
print(os.pathsep)
24. os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
print(os.name)
25.os.system("bash command") 运行shell命令,直接显示
os.system(r"dir")
26. os.environ 获取系统环境变量
print(os.environ)
27.os.path.abspath(path) 返回path规范化的绝对路径
print(os.path.abspath(__file__))
28. os.path.split(path) 将path分割成目录和文件名二元组返回
print(os.path.split(r"C:\a\b\c\d\a.txt"))
29. os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
print(os.path.dirname(os.path.abspath(__file__)))
30. os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
print(os.path.basename(r"C:\a\b\c\d\a.txt"))
31. os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
print(os.path.exists(r"C:\a\b\c\d\a.txt"))
32. os.path.isabs(path) 如果path是绝对路径,返回True
print(os.path.isabs(__file__))
33. os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
34. os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
35. os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
print(os.path.join('aaaa','/bbbb','ccccc.txt'))
36. os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
print(os.path.getatime(r"C:\a\b\c\d\a.txt"))
37. os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
print(os.path.getmtime(r"C:\a\b\c\d\a.txt"))
2.其他方法
1. 文章1:https://blog.csdn.net/u011077672/article/details/48198299
2. 文章2:http://www.runoob.com/python/os-file-methods.html