import os
import time
1、os.path
path = '/Users/beazley/Data/data.csv'
# 返回文件名
print(os.path.basename(path)) # data.csv
# 返回文件路径
print(os.path.dirname(path)) # /Users/beazley/Data
# 获得绝对路径
os.path.abspath(os.getcwd()) # D:\My_Project\cook_book_work
# 把目录和文件名合成一个路径
print(os.path.join('tmp', 'data', os.path.basename(path))) # tmp\data\data.csv
# 把文件名和拓展名分开,返回一个元组
print(os.path.splitext(path)) # ('/Users/beazley/Data/data', '.csv')
# 返回文件的路径和文件名
dirname,filename=os.path.split('/home/ubuntu/python_coding/split_func/split_function.py')
# 路径存在则返回True,路径损坏返回False
print(os.path.exists('D:\My_Project\cook_book_work\somefile.bin')) # True
# 判断路径是否为文件
print(os.path.isfile('D:\My_Project\cook_book_work\somefile.bin')) # True
# 判断路径是否为目录
print(os.path.isdir('D:\My_Project\cook_book_work\somefile.bin')) # False
# 判断路径是否为链接
print(os.path.islink('D:\My_Project\cook_book_work\somefile.bin')) # False
# Get the file linked to 返回path的真实路径
print(os.path.realpath('/usr/local/bin/python3')) # /usr/local/bin/python3.3
# getmtime()返回最近文件修改时间, getctime()返回文件创建时间
print(os.path.getmtime('D:\My_Project\cook_book_work\somefile.bin')) # 1544928936.165594
print(time.ctime(os.path.getmtime('D:\My_Project\cook_book_work\somefile.bin'))) # Sun Dec 16 10:55:36 2018
# 返回文件大小,如果文件不存在就返回错误
print(os.path.getsize('D:\My_Project\cook_book_work\somefile.bin')) # 11
os.mkdir('directory') #创建目录,只能创建一层目录
os.remove('test1.py') #删除指定文件
os.rmdir('aaa') #删除指定目录
2、os.open()
os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777。
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: 创建并打开一个新文件
3、os.listdir()
os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 '.' 和'..' 即使它在文件夹中。
#返回指定目录下所有的文件和目录名
os.listdir('.')
names = [name for name in os.listdir('D:\My_Project\cook_book_work')
if os.path.isfile(os.path.join('D:\My_Project\cook_book_work',name))]
print(names)
# ['somefile.bin', 'somefile.txt', 'somefile1.bin', 'test5_1.py']
4、os.chdir()、os.getcwd()
os.chdir()用于改变当前工作目录到指定的路径。
os.getcwd() #查看当前工作路径
os.chdir('/root/') #修改当前工作路径到‘/root’
5、os.system()
os.system执行系统操作命令,它的结果只是命令执行结果的返回值,执行成功会返回0
os.system('pwd') # linux
os.system('dir') # windows
6、os.access()
查看文件是否有指定权限,有则返回True否则返回flase
os.access(path, mode)
path:指定文件路径
mode:参数有F_OK(是否存在),R_OK(可读),W_OK(可写),X_OK(可执行)
os.access('/python/test.py',os.F_OK) #是否存在
os.access('/python/test.py',os.R_OK) #是否可读
os.access('/python/test.py',os.W_OK) #是否可写
os.access('/python/test.py',os.X_OK) #是否可执行
7、os.chmod()
方法用于更改文件或目录的权限。修改的权限的操作会覆盖以前的权限,只保留修改后的权限
权限指定:
stat.S_IXOTH: 其他用户有执行权0o001
stat.S_IWOTH: 其他用户有写权限0o002
stat.S_IROTH: 其他用户有读权限0o004
stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007
stat.S_IXGRP: 组用户有执行权限0o010
stat.S_IWGRP: 组用户有写权限0o020
stat.S_IRGRP: 组用户有读权限0o040
stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070
stat.S_IXUSR: 拥有者具有执行权限0o100
stat.S_IWUSR: 拥有者具有写权限0o200
stat.S_IRUSR: 拥有者具有读权限0o400
stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700
stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000
stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000
stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000
stat.S_IREAD: windows下设为只读
stat.S_IWRITE: windows下取消只读
import stat, os
os.chmod('/python/test.py',stat.S_IXOTH) #其他用户有可执行权限
8、os.chown()
方法用于更改文件所有者,如果不修改可以设置为 -1, 你需要超级用户权限来执行权限修改操作。
只支持在 Unix 下使用???
os.chown('/python/test.py',0,0) #设置文件的UID为0,root用户,GID为0,root组