网站的空间与域名,WordPress搜索引擎链接提交,石家庄网站建设网站,wordpress 微信模板文章目录 8 文件和目录操作8.7 浏览目录下的内容8.8 查看文件或目录的信息8.9 文件状态修改文件标志位文件权限文件所属用户和组其它 8.10 浏览Windows的驱动器、卷、挂载点8.11 系统配置信息 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面… 文章目录 8 文件和目录操作8.7 浏览目录下的内容8.8 查看文件或目录的信息8.9 文件状态修改文件标志位文件权限文件所属用户和组其它 8.10 浏览Windows的驱动器、卷、挂载点8.11 系统配置信息 os模块提供了各种操作系统接口。包括环境变量、进程管理、进程调度、文件操作等方面。
这里整理了文件操作的部分方法。
参考os模块官方文档
os模块的方法和系统相关且一些方法依赖python版本测试时使用下面的在线工具 在线python-3.12版本-Unix平台 8 文件和目录操作
8.7 浏览目录下的内容 os.listdir(path.) 返回path指定目录下的条目的名称列表。 结果中不会包含特殊条目.和..。 path为字节串时返回的结果也是字节串。 os.listdir(/)
[etc, sys, lib, srv, home, tmp, bin, boot, lib64, usr, dev, sbin, mnt, run, root, media, var, opt, proc, .dockerenv]os.scandir(path.) 返回类os.DirEntry类实例的迭代器对应指定目录下的条目。 如果需要文件类型或属性信息这个方法比os.listdir()更好用。因为os.DirEntry对象包含了这些信息。 scandir()支持上下文管理器 with os.scandir(path) as it:for entry in it:if not entry.name.startswith(.) and entry.is_file():print(entry.name)os.scandir(/)
posix.ScandirIterator object at 0x7f5d787d7530list(os.scandir(/))[:5]
[DirEntry etc, DirEntry sys, DirEntry lib, DirEntry srv, DirEntry home]class os.DirEntry os.scandir()生成的对象表示目录内某个条目的路径和文件属性。 它可以作为类路径对象使用。它的属性和方法的调用结果是缓存好的如果文件源数据已更改就需要使用os.stat()获取最新的信息。 它有以下属性和方法 name文件名是基于os.scandir()的path参数的相对路径。path完整路径。os.scandir()的path参数为绝对路径时该属性就为绝对路径path参数是文件描述符则该属性和name属性相同。isnode() 返回条目的索引节点号。is_dir(*, follow_symlinksTrue) 条目是否为目录或指向目录的符号链接。is_file(*, follow_symlinksTrue) 条目是否为文件或指向文件的符号链接。is_symlink() 条目是否为符号链接(断开的链接也算)。is_junction() 条目是否为接合点(断开也算)。stat(*, follow_symlinksTrue) 返回条目对应的os.stat_result对象。 os.walk(top, topdownTrue, onerrorNone, followlinksFalse) 生成目录树中的文件名方式为从上到下或从下到上浏览目录树。 以top为根目录树中的每个目录都会生成一个三元组(dirpath, dirnames, filenames)。dirpath表示目录的路径dirnames是dirpath中的子目录名称组成的列表。filenames是dirpath中非目录文件组成的列表。列表中的名称不包含路径部分。 topdown为True时先生成父目录的三元组为False时先生成子目录的三元组。topdown为True时就地修改dirnames列表后续只会在dirnames中的内容做查找。这样做可以减少搜索、加入特定的访问顺序。topdown为False时修改dirnames不影响后续检索因为dirnames在dirpath之前就已经生成了。 top为相对路径时在os.walk()返回前不要更改工作目录。 followlinks设置为True时对于指向父目录的链接会出现无限递归。 os.walk(/)
generator object walk at 0x7f905bf94040list(os.walk(/))[:1]
[(/, [etc, sys, lib, srv, home, tmp, bin, boot, lib64, usr, dev, sbin, mnt, run, root, media, var, opt, proc], [.dockerenv])]os.fwalk(top., topdownTrue, onerrorNone, *, dir_fdNone, follow_symlinksFalse) 效果和os.walk()一样不过产生四元组(dirpath, dirnames, filenames, dirfd)dirfd是指向dirpath的文件描述符。 8.8 查看文件或目录的信息 os.access(path, mode, *, dir_fdNone, effective_idsFalse, follow_symlinksTrue) 使用实际用户ID/用户组ID测试对path的访问。 参数mode指定对path做什么测试os.F_OK(是否存在)、os.R_OK(可读)、os.W_OK(可写)、os.X_OK(可执行)。 参数effective_ids为True时将使用有效用户ID/用户组ID而不是实际用户ID/用户组ID。可以用os.supports_effective_ids检测是否支持使用有效用户ID/用户组ID。 os.access()方法指示I/O操作会成功但是实际可能失败尤其是对网络文件系统的操作。 os.supports_effective_ids 一个集合表示当前平台上是否支持os.access()的effective_ids指定为True。不支持时集合为空。 os.supports_effective_ids
{built-in function access}os.stat(path, *, dir_fdNone, follow_symlinksTrue) 获取文件或描述符的状态。返回一个os.stat_result对象。 os.stat(.)
os.stat_result(st_mode16895, st_ino2814749767298829, st_dev86, st_nlink1, st_uid0, st_gid0, st_size4096, st_atime1740675232, st_mtime1740675232, st_ctime1740675232)os.lstat(path, *, dir_fdNone) 类似于os.stat但不会跟随符号链接。 返回一个类os.stat_result的实例。 class os.stat_result 这个类用于os.stat()、os.fstat()、os.lstat的输出。 它有以下属性 st_mode文件模式包括文件类型和权限st_ino文件的索引节点号st_dev文件所在设备的标识符st_nlink硬链接数目st_uid所有者的用户IDst_gid所有者的组IDst_size文件大小(字节)符号链接的大小是它包含的路径的长度st_atime最近访问时间(秒)st_mtime最近修改时间(秒)st_ctime元数据最近更改的时间(秒)st_atime_ns最近访问时间(纳秒)st_mtime_ns最近修改时间(纳秒)st_ctime_ns元数据最近更改的时间(纳秒)st_birthtime文件创建时间(秒)st_birthtime_ns文件创建时间(纳秒)st_blocks文件的字节块数每块512字节st_blksize块大小st_rdev设备类型st_flags用户定义的文件标志位st_gen文件生成号st_fstype文件所在的文件系统的类型的唯一标识符st_rsize文件的实际大小st_creator文件的创建者st_type文件类型 上述时间属性的值依赖于操作系统的精度。 os.statvfs(path) 返回所在的文件系统信息。仅Unix可用。 os.statvfs(.)
os.statvfs_result(f_bsize4096, f_frsize4096, f_blocks244186111, f_bfree83501754, f_bavail83501754, f_files999, f_ffree1000000, f_favail1000000, f_flag1024, f_namemax255)8.9 文件状态修改
文件标志位
os.chflags(path, flags, *, follow_symlinksTrue) 把path的flags设置为其他由数字表示的flags。 flags的值在stat模块中定义。os.lchflags(path, flags) 把path的flags设置为其他数字表示的flags。
文件权限
os.chmod(path, mode, *, dir_fdNone, follow_symlinksTrue) 把path的权限改为其他mode表示的权限。 mode的可选值在stat模块中定义。os.lchmod(path, mode) 把path的mode改为其他数字表示的mode。 等效于os.chmod(path, mode, follow_symlinksFalse)
文件所属用户和组 os.chown(path, uid, gid, *, dir_fdNone, follow_symlinksTrue) 修改path的用户和组ID。uid、gid设置为-1时表示不做修改。 os.lchown(path, uid, gid) 修改path的用户和组ID。 等效于os.chown(path, uid, gid, follow_symlinksFalse)。 os.utime(path, timesNone, *, [ns, ]dir_fdNone, follow_symlinksTrue) 设置文件的访问时间和修改时间。 times不为None时必须是(atime, mtime)形式的二元组成员是表示秒的整数或浮点数。 times为None指定ns时ns必须是纳秒组成的二元组(atime_ns, mtime_ns) times为None且未指定ns时相当于以当前时间指定ns(atime_ns, mtime_ns)。 同时指定times和ns会出错。
其它
os.sync() 强制将所有内容写入磁盘。os.truncate(path, length) 截断文件使其最大为length大小。
8.10 浏览Windows的驱动器、卷、挂载点 os.listdrives() 返回系统的驱动器名称列表。 os.listdrives()
[C:\\, D:\\]os.listvolumes() 返回一个包含系统中卷的列表。 os.listmounts(volume) 返回指定卷的挂载点的列表。 volume必须是GUID路径如os.listvolumes()返回的值。 os.listvolumes()
[\\\\?\\Volume{02cf02ce-0000-0000-0000-100000000000}\\, \\\\?\\Volume{d29ac86d-e09b-40da-b12c-87d386a77303}\\, \\\\?\\Volume{fc57ca93-ead3-4d89-9578-543426fafadf}\\, \\\\?\\Volume{836efff0-1021-4a45-8c98-aa445d4d836a}\\]os.listmounts(os.listvolumes()[1])
[C:\\]8.11 系统配置信息 os.pathconf(path, name) 返回所给名称的文件的系统配置信息。 os.pathconf_names 当前系统定义的配置名称字典。 是os.pathconf()和os.fpathconf()两个函数可接受的名称和整数值之间的映射。 os.pathconf_names
{PC_ALLOC_SIZE_MIN: 18, PC_ASYNC_IO: 10, PC_CHOWN_RESTRICTED: 6, PC_FILESIZEBITS: 13, PC_LINK_MAX: 0, PC_MAX_CANON: 1, PC_MAX_INPUT: 2, PC_NAME_MAX: 3, PC_NO_TRUNC: 7, PC_PATH_MAX: 4, PC_PIPE_BUF: 5, PC_PRIO_IO: 11, PC_REC_INCR_XFER_SIZE: 14, PC_REC_MAX_XFER_SIZE: 15, PC_REC_MIN_XFER_SIZE: 16, PC_REC_XFER_ALIGN: 17, PC_SOCK_MAXBUF: 12, PC_SYMLINK_MAX: 19, PC_SYNC_IO: 9, PC_VDISABLE: 8}以上是os模块关于文件和目录操作的一部分函数的整理。 该模块的其他内容参考 os模块环境变量、进程所属的用户和组 os模块进程管理 os模块调度策略、系统信息 os模块文件和目录1 os模块文件描述符操作1 os模块文件描述符操作2