大连建站方案,php手机网站如何制作教程,苏州新区网站制作,视频网站怎么做算法一、案例#xff1a;在某些项目中#xff0c;需要获取文件的状态文件状态#xff1a;os.stat(path)1、文件的类型#xff1a;普通文件、目录、符号链接、设备文件或管道(一般在Linux上)。。。2、文件的访问权限#xff1a;一般为读、写、执行#xff0c;3个权限#xff…一、案例在某些项目中需要获取文件的状态文件状态os.stat(path)1、文件的类型普通文件、目录、符号链接、设备文件或管道(一般在Linux上)。。。2、文件的访问权限一般为读、写、执行3个权限3、文件的最后的访问时间(对应read操作)、最后的修改时间(对应write操作)、最后的节点状态更改时间(对应的chang_move、chang_name的操作)4、获取普通文件的大小也就是字节数#普通文件如.py、.txt、.csv等#目录文件目录d/#符号链接文件x.txt - a.txt也就是x.txt引用了普通文件a.txt二、Python中如何获取文件的状态方法一系统调用标准库os模块下的三个系统调用stat、fstat、lstat获取文件状态1)os.stat(path)、os.lstat(path)、os.fstat(fileno)获取指定文件的状态2)stat和lstat的差异表现在对符号链接文件的操作如x.txt - a.txt:#os.lstat(x.txt)返回符号链接x.txt文件的状态#os.stat(x.txt)返回的是a.txt文件的状态因为stat要跟随符号链接指向a.txt文件3)fstat和stat功能一样差异os.fstat()操作的是文件的描述符(fileno)不是文件路径方法二快捷函数标准库中os.path下的一些函数#更加简洁三、实例查看文件状态(采用方法一)1)得到文件类型os.stat(test.txt).st_modeimportosf open(test.txt, w)s abcdef.write(s)f.close()#得到文件状态test os.stat(test.txt)#查看文件状态print(test)#输出os.stat_result(st_mode33206, st_ino562949953421655, st_dev995426, st_nlink1, st_uid0, st_gid0, st_size5, st_atime1523433493, st_mtime1523588571, st_ctime1523433493)#文件类型存放在st_mode中print(test.st_mode)#输出33206#33206实际上是一些标志位构成的#将状态的标志位转换为二进制(用bin函数)也就是解析此标志位可直观看出33206所表示的标志位print(bin(test.st_mode))#输出0b1000000110110110import stat#查看stat模块的功能print(help(stat))2)查看文件权限importstat#stat.S_ISDIR判断文件是不是目录若是返回True否则返回Falses1 stat.S_ISDIR(test.st_mode)#stat.S_ISREG判断文件是不是普通文件s2 stat.S_ISREG(test.st_mode)#stat.S_ISBLK判断是否是块设备#查看文件的读权限通过与stat.S_IRUSR(读权限)取交集来看文件是否有读权限test.st_mode stat.S_IRUSR#查看用户对文件的执行权限test.st_mode stat.S_IXUSER#查看其它人对文件的执行权限test.st_mode stat.S_IXOTH3)查看文件的三个时间状态访问、修改、更新os.stat(test.txt).st_atime/st_mtime/st_ctimeimportosf open(test.txt, w)s abcdef.write(s)f.close()#得到文件状态test os.stat(test.txt)#查看文件状态print(test)#输出os.stat_result(st_mode33206, st_ino562949953421655, st_dev995426, st_nlink1, st_uid0, st_gid0, st_size5, st_atime1523433493, st_mtime1523588571, st_ctime1523433493)#查看3个时间并通过time模块下的locatime()方法将秒改为现代时间import time#查看最近的访问时间test.st_timeprint(time.locatime(test.st_atime))#查看最近修改时间test.st_mtimeprint(time.locatime(test.st_mtime))#查看最近节点状态更新时间test.st_ctimeprint(time.locatime(test.st_ctime))4)查看文件大小#输出os.stat_result(st_mode33206, st_ino562949953421655, st_dev995426, st_nlink1, st_uid0, st_gid0, st_size5, st_atime1523433493, st_mtime1523588571, st_ctime1523433493)#查看文件大小字节数print(test.st_size)四、实例查看文件状态(采用方法一)标准库中os.path下的一些函数#更加简洁