当前位置: 首页 > news >正文

网站设计与系统的区别成都网站建设熊掌号

网站设计与系统的区别,成都网站建设熊掌号,做搜狗pc网站排名,湘乡新闻头条内置函数文件操作 python内置函数提供了简单的文件操作支持。 open() open()函数打开一个文件#xff0c;创建一个file对象#xff0c;相关的方法才可以调用它进行读写。 语法为#xff1a; open(file,moder,buffering-1,encodingNone,errorsNone,newlineNone,closefdT…内置函数文件操作 python内置函数提供了简单的文件操作支持。 open() open()函数打开一个文件创建一个file对象相关的方法才可以调用它进行读写。 语法为 open(file,moder,buffering-1,encodingNone,errorsNone,newlineNone,closefdTrue,openerNone, ) 参数说明 filefile 是一个类路径对象path-like object表示将要打开的文件的路径mode默认为 r用于指定打开文件的模式可见下文介绍。buffering设置缓冲策略encoding是用于解码或编码文件的编码的名称这只能在文本模式下使用默认编码依赖于平台但 Python 支持的任何编码都可以传递。errors指定如何处理编码和解码错误不能在二进制模式下使用。newline控制如何换行closefd如果 closefd 为 False 且给出的不是文件名而是文件描述符那么当文件关闭时底层文件描述符将保持打开状态。如果给出的是文件名则 closefd 必须为 True 默认值否则将触发错误。opener 可以通过传递可调用的 opener 来使用自定义开启器。然后通过使用参数 fileflags 调用 opener 获得文件对象的基础文件描述符。 opener 必须返回一个打开的文件描述符使用 os.open as opener 时与传递 None 的效果相同。 file 是一个类路径对象path-like object表示将要打开的文件的路径绝对路径或者相对当前工作目录的路径也可以是要封装文件对应的整数类型文件描述符。如果给出的是文件描述符则当返回的 I/O 对象关闭时它也会关闭除非将 closefd 设为 False 。 路径类对象path-like object代表一个文件系统路径的对象。类路径对象可以是一个表示路径的 str 或者 bytes 对象还可以是一个实现了 os.PathLike 协议的对象。一个支持 os.PathLike 协议的对象可通过调用 os.fspath() 函数转换为 str 或者 bytes 类型的文件系统路径os.fsdecode() 和 os.fsencode() 可被分别用来确保获得 str 或 bytes 类型的结果。 可用的模式有 r读文件 (默认)w打开以进行写入首先截断文件x创建一个新文件并打开它进行写入如果存在则失败a打开进行写入如果文件存在则追加到文件末尾b二进制模式t文本模式 (默认)打开文件进行更新读写U通用换行模式已弃用 不同模式打开文件的完全列表 模式描述t文本模式 (默认)。x写模式新建一个文件如果该文件已存在则会报错。b二进制模式。打开一个文件进行更新(可读可写)。U通用换行模式不推荐。r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。r打开一个文件用于读写。文件指针将会放在文件的开头。rb以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。w打开一个文件只用于写入。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件。wb以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件。一般用于非文本文件如图片等。w打开一个文件用于读写。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件。wb以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件并从开头开始编辑即原有内容会被删除。如果该文件不存在创建新文件。一般用于非文本文件如图片等。a打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。ab以二进制格式打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入。a打开一个文件用于读写。如果该文件已存在文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在创建新文件用于读写。ab以二进制格式打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。如果该文件不存在创建新文件用于读写。 Python 区分二进制和文本I/O。以二进制模式打开的文件包括 mode 参数中的 b 返回的内容为 bytes 对象不进行任何解码。在文本模式下默认情况下或者在 mode 参数中包含 t 时文件内容返回为 str 首先使用指定的 encoding 如果给定或者使用平台默认的的字节编码解码。 buffering 是用于设置缓冲策略的可选整数。规则有 缓冲是用于设置缓冲策略的可选整数。规则有 传递 0 以关闭缓冲仅在二进制模式下允许传递 1 以选择行缓冲仅在文本模式下可用传递大于1的整数以指示固定大小块缓冲区的字节大小如果取负值寄存区的缓冲大小则为系统默认 如果未给出缓冲参数使用默认的或者负值默认缓冲策略的工作方式如下 二进制文件缓冲在固定大小的块中; 缓冲区的大小使用启发式选择试图确定底层设备的默认缓冲区块大小block size和 回溯到io.DEFAULT_BUFFER_SIZE 和回溯到io。默认缓冲区大小。在许多系统上缓冲区的长度通常为4096或8192字节。“交互式”文本文件 satty() 返回 True的文件使用行缓冲。其他文本文件使用上述策略用于二进制文件。 errors 是一个可选的字符串参数用于指定如何处理编码和解码错误 - 这不能在二进制模式下使用。可以使用各种标准错误处理程序列在 错误处理方案 但是使用 codecs.register_error() 注册的任何错误处理名称也是有效的。标准名称包括: 如果存在编码错误strict 会引发 ValueError 异常。 默认值 None 具有相同的效果。ignore 忽略错误。请注意忽略编码错误可能会导致数据丢失。replace 会将替换标记例如 ? 插入有错误数据的地方。surrogateescape 将把任何不正确的字节表示为 UDC80 至 UDCFF 范围内的下方替代码位。 当在写入数据时使用surrogateescape 错误处理句柄时这些替代码位会被转回到相同的字节。 这适用于处理具有未知编码格式的文件。只有在写入文件时才支持 xmlcharrefreplace。编码不支持的字符将替换为相应的XML字符引用 #nnn;。backslashreplace 用Python的反向转义序列替换格式错误的数据。namereplace 也只在编写时支持用 \N{...} 转义序列替换不支持的字符。 newline 控制 universal newlines 模式如何生效它仅适用于文本模式。它可以是 None\n\r 和 \r\n。它的工作原理: 从流中读取输入时如果 newline 为 None则启用通用换行模式。输入中的行可以以 \n\r 或 \r\n 结尾这些行被翻译成 \n 在返回呼叫者之前。如果它是 则启用通用换行模式但行结尾将返回给调用者未翻译。如果它具有任何其他合法值则输入行仅由给定字符串终止并且行结尾将返回给未调用的调用者。将输出写入流时如果 newline 为 None则写入的任何 \n 字符都将转换为系统默认行分隔符 os.linesep。如果 newline 是 或 \n则不进行翻译。如果 newline 是任何其他合法值则写入的任何 \n 字符将被转换为给定的字符串。 file对象 一个文件被打开后你有一个file对象你可以得到有关该文件的各种信息。 以下是和file对象相关的所有属性的列表 属性描述file.closed返回true如果文件已被关闭否则返回false。file.mode返回被打开文件的访问模式。file.name返回文件的名称。file.softspace如果用print输出后必须跟一个空格符则返回false。否则返回true。 #!/usr/bin/python # -*- coding: UTF-8 -*-# 打开一个文件 fo open(foo.txt, w) print 文件名: , fo.name print 是否已关闭 : , fo.closed print 访问模式 : , fo.mode print 末尾是否强制加空格 : , fo.softspace‘’’ 文件名: foo.txt 是否已关闭 : False 访问模式 : w 末尾是否强制加空格 : 0 ’’’ 常见的 file 对象方法 f.read([size])size 未指定则返回整个文件如果文件大小 2 倍内存则有问题f.read()读到文件尾时返回(空字串)。f.readline()返回一行。f.readlines([size]) 返回包含size行的列表, size 未指定则返回全部行。for line in f: print line 通过迭代器访问。f.write(hello\n)如果要写入字符串以外的数据,先将他转换为字符串。f.tell()返回一个整数,表示当前文件指针的位置(就是到文件头的字节数)。f.seek(偏移量,[起始位置])用来移动文件指针。 偏移量: 单位为字节可正可负起始位置: 0 - 文件头, 默认值; 1 - 当前位置; 2 - 文件尾f.close() 关闭文件 file 对象常用的函数 函数方法及描述file.close() 关闭文件。关闭后文件不能再进行读写操作。 file.flush() 刷新文件内部缓冲直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。 file.fileno() 返回一个整型的文件描述符(file descriptor FD 整型), 可以用在如os模块的read方法等一些底层操作上。 file.isatty() 如果文件连接到一个终端设备返回 True否则返回 False。 file.next() 返回文件下一行。 file.read([size]) 从文件读取指定的字节数如果未给定或为负则读取所有。 file.readline([size]) 读取整行包括 \n 字符。 file.readlines(sizeint]) 读取所有行并返回列表若给定sizeint0则是设置一次读多少字节这是为了减轻读取压力。 file.seek(offset[,whence]) 设置文件当前位置 file.tell() 返回文件当前位置。 file.truncate([size]) 截取文件截取的字节通过size指定默认为当前文件位置。 file.write(str) 将字符串写入文件返回的是写入的字符长度。 file.writelines(sequence) 向文件写入一个序列字符串列表如果需要换行则要自己加入每行的换行符。 close() File 对象的 close方法刷新缓冲区里任何还没写入的信息并关闭该文件这之后便不能再进行写入。 当一个文件对象的引用被重新指定给另一个文件时Python 会关闭之前的文件。用 close方法关闭文件是一个很好的习惯。 语法 fileObject.close() #!/usr/bin/python # -*- coding: UTF-8 -*-# 打开一个文件 fo open(foo.txt, w) print 文件名: , fo.name# 关闭打开的文件 fo.close()‘ 文件名: foo.txt ‘ write() write()方法可将任何字符串写入一个打开的文件。需要重点注意的是Python字符串可以是二进制数据而不是仅仅是文字。 write()方法不会在字符串的结尾添加换行符(\n) fileObject.write(string) 在这里被传递的参数是要写入到已打开文件的内容。 #!/usr/bin/python # -*- coding: UTF-8 -*-# 打开一个文件 fo open(foo.txt, w) fo.write( “I love Python!\nVery good!\n)# 关闭打开的文件 fo.close()‘’ $ cat foo.txt I love Python! Very good! ‘ writelines() 方法用于向文件中写入一序列的字符串。 换行需要制定换行符 \n。 # 打开文件 fo open(test.txt, w) print 文件名为: , fo.name seq [Python实用教程 1\n, Python实用教程 2] fo.writelines( seq )# 关闭文件 fo.close() read() read方法从一个打开的文件中读取一个字符串。需要重点注意的是Python字符串可以是二进制数据而不是仅仅是文字。 语法 fileObject.read([count]) 在这里被传递的参数是要从已打开文件中读取的字节计数。该方法从文件的开头开始读入如果没有传入count它会尝试尽可能多地读取更多的内容很可能是直到文件的末尾。 #!/usr/bin/python # -*- coding: UTF-8 -*-# 打开一个文件 fo open(foo.txt, r) str fo.read(10) print 读取的字符串是 : , str # 关闭打开的文件 fo.close()‘’ 读取的字符串是 : I love Pyt ‘ readline()和readlines() readline() 函数用于读取文件中的一行包含最后的换行符“\n”。此函数的基本语法格式为 file.readline([size]) 其中file 为打开的文件对象size 为可选参数用于指定读取每一行时一次最多读取的字符字节数。 ‘’‘ 假设文件的内容是 Python实用教程 https://blog.csdn.net/spiritx/article/details/132154074 ’’’f open(my_file.txt) 读取一行数据 byt f.readline() print(byt)‘’’ Python实用教程’’’由于 readline() 函数在读取文件中一行的内容时会读取最后的换行符“\n”再加上 print() 函数输出内容时默认会换行所以输出结果中会看到多出了一个空行。 不仅如此在逐行读取时还可以限制最多可以读取的字符字节数例如 #以二进制形式打开指定文件 f open(my_file.txt,rb) byt f.readline(6) print(byt)‘’’ b’Python ’‘’ 和上一个例子的输出结果相比由于这里没有完整读取一行的数据因此不会读取到换行符。 readlines() 函数用于读取文件中的所有行它和调用不指定 size 参数的 read() 函数类似只不过该函数返回是一个字符串列表其中每个元素为文件中的一行内容。 f open(my_file.txt,r) byt f.readlines() print(byt)‘’‘ Python实用教程 https://blog.csdn.net/spiritx/article/details/132154074 ’’’ next() 文件使用迭代器时会使用到在循环中next()方法会在每次循环中调用该方法返回文件的下一行如果到达结尾(EOF),则触发 StopIteration # 打开文件 fo open(“foo.txt, r) print 文件名为: , fo.namefor index in range(5):line fo.next()print 第 %d 行 - %s % (index, line)# 关闭文件 fo.close() tell()和seek() tell()方法告诉你文件内的当前位置, 换句话说下一次的读写会发生在文件开头这么多字节之后。 seekoffset [,from]方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。 如果from被设为0这意味着将文件的开头作为移动字节的参考位置。如果设为1则使用当前的位置作为参考位置。如果它被设为2那么该文件的末尾将作为参考位置。 例子 就用我们上面创建的文件foo.txt。 #!/usr/bin/python # -*- coding: UTF-8 -*-# 打开一个文件 fo open(foo.txt, r) str fo.read(10) print 读取的字符串是 : , str# 查找当前位置 position fo.tell() print 当前文件位置 : , position# 把指针再次重新定位到文件开头 position fo.seek(0, 0) str fo.read(10) print 重新读取字符串 : , str # 关闭打开的文件 fo.close()’’’ 读取的字符串是 : I love Pyt 当前文件位置 : 10 重新读取字符串 : I love Pyt ‘ 使用with语句打开文件 Python引入了with语句来自动帮我们调用close()方法。 with open() as写文件 with open(test.txt,w) as f:f.write(Hello, python!) with open() as 读文件 with open(example.txt, r) as file:content file.read()print(content)使用with语句可以打开文件并在文件使用完毕后自动关闭文件。这种方式可以避免因为程序异常退出而导致文件没有关闭的问题从而保证文件的安全性和可靠性。 os库中的文件目录方法 os 模块提供了非常丰富的方法用来处理文件和目录。 常见方法列表 方法方法及描述os.access(path,mode) 检验权限模式os.chdir(path) 改变当前工作目录os.chflags(path,flags) 设置路径的标记为数字标记。os.chmod(path,mode) 更改权限os.chown(path,uid,gid) 更改文件所有者os.chroot(path) 改变当前进程的根目录os.close(fd) 关闭文件描述符 fdos.closerange(fd_low,fd_high) 关闭所有文件描述符从 fd_low (包含) 到 fd_high (不包含), 错误会忽略os.dup(fd) 复制文件描述符 fdos.dup2(fd,fd2) 将一个文件描述符 fd 复制到另一个 fd2os.fchdir(fd) 通过文件描述符改变当前工作目录os.fchmod(fd,mode) 改变一个文件的访问权限该文件由参数fd指定参数mode是Unix下的文件访问权限。os.fchown(fd,uid,gid) 修改一个文件的所有权这个函数修改一个文件的用户ID和用户组ID该文件由文件描述符fd指定。os.fdatasync(fd) 强制将文件写入磁盘该文件由文件描述符fd指定但是不强制更新文件的状态信息。os.fdopen(fd[,mode[,bufsize]]) 通过文件描述符 fd 创建一个文件对象并返回这个文件对象os.fpathconf(fd,name) 返回一个打开的文件的系统配置信息。name为检索的系统配置的值它也许是一个定义系统值的字符串这些名字在很多标准中指定POSIX.1, Unix 95, Unix 98, 和其它。os.fstat(fd) 返回文件描述符fd的状态像stat()。os.fstatvfs(fd) 返回包含文件描述符fd的文件的文件系统的信息像 statvfs()os.fsync(fd) 强制将文件描述符为fd的文件写入硬盘。os.ftruncate(fd,length) 裁剪文件描述符fd对应的文件, 所以它最大不能超过文件大小。os.getcwd() 返回当前工作目录os.getcwdu() 返回一个当前工作目录的Unicode对象os.getenv()读取环境变量os.getlogin()返回进程的控制终端上登录的用户的名称。os.putenv()设置环境变量os.isatty(fd) 如果文件描述符fd是打开的同时与tty(-like)设备相连则返回true, 否则False。os.lchflags(path,flags) 设置路径的标记为数字标记类似 chflags()但是没有软链接os.lchmod(path,mode) 修改连接文件权限os.lchown(path,uid,gid) 更改文件所有者类似 chown但是不追踪链接。os.link(src,dst) 创建硬链接名为参数 dst指向参数 srcos.listdir(path) 返回path指定的文件夹包含的文件或文件夹的名字的列表。os.lseek(fd,pos,how) 设置文件描述符 fd当前位置为pos, how方式修改: SEEK_SET 或者 0 设置从文件开始的计算的pos; SEEK_CUR或者 1 则从当前位置计算; os.SEEK_END或者2则从文件尾部开始. 在unixWindows中有效os.lstat(path) 像stat(),但是没有软链接os.major(device) 从原始的设备号中提取设备major号码 (使用stat中的st_dev或者st_rdev field)。os.makedev(major,minor) 以major和minor设备号组成一个原始设备号os.mkedirs(path[,mode]) 递归文件夹创建函数。像mkdir(), 但创建的所有intermediate-level文件夹需要包含子文件夹。os.minor(device) 从原始的设备号中提取设备minor号码 (使用stat中的st_dev或者st_rdev field )。os.mkdir(path[,mode]) 以数字mode的mode创建一个名为path的文件夹.默认的 mode 是 0777 (八进制)。os.mkfifo(path[,mode]) 创建命名管道mode 为数字默认为 0666 (八进制)os.mknod(filename[,mode0600,device]) 创建一个名为filename文件系统节点文件设备特别文件或者命名pipe。 os.open(file,flags[,mode]) 打开一个文件并且设置需要的打开选项mode参数是可选的os.openpty() 打开一个新的伪终端对。返回 pty 和 tty的文件描述符。os.pathconf(path,name) 返回相关文件的系统配置信息。os.pipe() 创建一个管道. 返回一对文件描述符(r, w) 分别为读和写os.popen(command[,mode[,bufsize]]) 从一个 command 打开一个管道os.read(fd,n) 从文件描述符 fd 中读取最多 n 个字节返回包含读取字节的字符串文件描述符 fd对应文件已达到结尾, 返回一个空字符串。os.readlink(path) 返回软链接所指向的文件os.remove(path) 删除路径为path的文件。如果path 是一个文件夹将抛出OSError; 查看下面的rmdir()删除一个 directory。os.removedirs(path) 递归删除目录。os.rename(src,dst) 重命名文件或目录从 src 到 dstos.renames(old,new) 递归地对目录进行更名也可以对文件进行更名。os.rmdir(path) 删除path指定的空目录如果目录非空则抛出一个OSError异常。os.stat(path) 获取path指定的路径的信息功能等同于C API中的stat()系统调用。os.stat_float_times([newvalue]) 决定stat_result是否以float对象显示时间戳 os.statvfs(path) 获取指定路径的文件系统统计信息os.symlink(src,dst) 创建一个软链接os.system()运行shell命令os.exit()终止当前进程os.tcgetgrp(fd) 返回与终端fd一个由os.open()返回的打开的文件描述符关联的进程组os.tcsetpgrp(fd,pg) 设置与终端fd一个由os.open()返回的打开的文件描述符关联的进程组为pg。os.tempnam([dir[,prefix]]) 返回唯一的路径名用于创建临时文件。os.tmpfile() 返回一个打开的模式为(wb)的文件对象 .这文件对象没有文件夹入口没有文件描述符将会自动删除。os.tmpnam() 为创建一个临时文件返回一个唯一的路径os.ttyname(fd) 返回一个字符串它表示与文件描述符fd 关联的终端设备。如果fd 没有与终端设备关联则引发一个异常。os.unlink(path) 删除文件os.utime(path,times) 返回指定的path文件的访问和修改的时间。 os.walk(top[, topdownTrue[, οnerrοrNone[, followlinksFalse]]]) 输出在文件夹中的文件名通过在树中游走向上或者向下。os.write(fd,str) 写入字符串到文件描述符 fd中. 返回实际写入的字符串长度os.path 获取文件的属性信息。 os.sep:取代操作系统特定的路径分隔符os.name:指示你正在使用的工作平台。比如对于Windows它是nt而对于Linux/Unix用户它是posix。os.linesep:给出当前平台的行终止符。例如Windows使用\r\nLinux使用\n而Mac使用\ros.curdir:返回当前目录. os.path 方法说明os.path.abspath(path)返回绝对路径os.path.basename(path)返回文件名os.path.commonprefix(list)返回list(多个路径)中所有path共有的最长的路径os.path.dirname(path)返回文件路径os.path.exists(path)如果路径 path 存在返回 True如果路径 path 不存在或损坏返回 False。os.path.lexists(path)路径存在则返回 True路径损坏也返回 Trueos.path.expanduser(path)把 path 中包含的 ~ 和 ~user 转换成用户目录os.path.expandvars(path)根据环境变量的值替换 path 中包含的 $name 和 ${name}os.path.getatime(path)返回最近访问时间浮点型秒数os.path.getmtime(path)返回最近文件修改时间os.path.getctime(path)返回文件 path 创建时间os.path.getsize(path)返回文件大小如果文件不存在就返回错误os.path.isabs(path)判断是否为绝对路径os.path.isfile(path)判断路径是否为文件os.path.isdir(path)判断路径是否为目录os.path.islink(path)判断路径是否为链接os.path.ismount(path)判断路径是否为挂载点os.path.join(path1[, path2[, ...]])把目录和文件名合成一个路径os.path.normcase(path)转换path的大小写和斜杠os.path.normpath(path)规范path字符串形式os.path.realpath(path)返回path的真实路径os.path.relpath(path[, start])从start开始计算相对路径os.path.samefile(path1, path2)判断目录或文件是否相同os.path.sameopenfile(fp1, fp2)判断fp1和fp2是否指向同一文件os.path.samestat(stat1, stat2)判断stat tuple stat1和stat2是否指向同一个文件os.path.split(path)把路径分割成 dirname 和 basename返回一个元组os.path.splitdrive(path)一般用在 windows 下返回驱动器名和路径组成的元组os.path.splitext(path)分割路径返回路径名和文件扩展名的元组os.path.splitunc(path)把路径分割为加载点与文件os.path.walk(path, visit, arg)遍历path进入每个目录都调用visit函数visit函数必须有3个参数(arg, dirname, names)dirname表示当前目录的目录名names代表当前目录下的所有文件名args则为walk的第三个参数os.path.supports_unicode_filenames设置是否支持unicode路径名 os.path.abspath(path) # 返回绝对路径 os.path.abspath(__file__) # 得到当前文件的绝对路径os.path.dirname(path) # 返回文件路径 os.path.dirname(__file__) # 得到当前文件所在目录os.path.join(path1,path2) # 把目录和文件名合成一个路径 os.path.join(/test/,tttttttt.txt)os.path.exists(eeeee.txt) # 判断当前路径是否存在# 判断是否是目录 print(os.path.isdir(test”))# 判断是否是文件 print(os.path.isfile(a.txt”))# 返回文件访问时间戳 print(os.path.getatime(a.txt”))# 拼接路径 print(os.path.join(/tmp,a.txt)) # 返回结果就是/tmp/a.txt# 分隔路径 print(os.path.split(/tmp/a.txt”)) # 返回结果是一个元组两个元素(/tmp, a.txt’)# 分隔后缀 print(os.path.splitext(a.txt”)) # 返回结果是一个元组两个元素(a, .txt) import os # 获取文件路径 file_path /Users/username/Documents/test.txt dir_path os.path.dirname(file_path) print(文件路径为, file_path) print(文件所在目录为, dir_path) ‘’’ 文件路径为 /Users/username/Documents/test.txt 文件所在目录为 /Users/username/Documents ’’’file_path /Users/username/Documents/test.txt file_name os.path.basename(file_path) print(文件路径为, file_path) print(文件名为, file_name) ‘’’ 文件路径为 /Users/username/Documents/test.txt 文件名为 test.txt ’’’# 获取文件扩展名 file_path /Users/username/Documents/test.txt file_ext os.path.splitext(file_path)[1] print(文件路径为, file_path) print(文件扩展名为, file_ext) ‘’’ 文件路径为 /Users/username/Documents/test.txt 文件扩展名为 .txt ’‘’ os.path.getmtime(path):文件或文件夹的最后修改时间从新纪元到访问时的秒数。os.path.getatime(path):文件或文件夹的最后访问时间从新纪元到访问时的秒数。os.path.getctime(path):文件或文件夹的创建时间从新纪元到访问时的秒数。 os.path.getmtime(D:\\pythontest\\ostest\\hello.py) 1481695651.857048os.path.getatime(D:\\pythontest\\ostest\\hello.py) 1481687717.8506615os.path.getctime(D:\\pythontest\\ostest\\hello.py) 1481687717.8506615 os.path.getsize(path):文件或文件夹的大小若是文件夹返回0。 os.path.getsize(D:\\pythontest\\ostest\\hello.py) 58Los.path.getsize(D:\\pythontest\\ostest) 0L os.path.exists(path):文件或文件夹是否存在返回True 或 False。 os.listdir(os.getcwd()) [hello.py, test.txt]os.path.exists(D:\\pythontest\\ostest\\hello.py) Trueos.path.exists(D:\\pythontest\\ostest\\Hello.py) Trueos.path.exists(D:\\pythontest\\ostest\\Hello1.py) False 重点方法详细说明 rename()  rename() 方法需要两个参数当前的文件名和新文件名。 语法 os.rename(current_file_name, new_file_name) 例子 下例将重命名一个已经存在的文件test1.txt。 import os# 重命名文件test1.txt到test2.txt。 os.rename( test1.txt, test2.txt ) remove() 可以用remove()方法删除文件需要提供要删除的文件名作为参数。 语法 os.remove(file_name) 例子 下例将删除一个已经存在的文件test2.txt。 import os# 删除一个已经存在的文件test2.txt os.remove(test2.txt) mkdir() 语法 os.mkdir(newdir) 例子 下例将在当前目录下创建一个新目录test。 import os# 创建目录test os.mkdir(test) rmdir() 删除目录目录名称以参数传递。 在删除这个目录之前它的所有内容应该先被清除。 语法 os.rmdir(dirname) 例子 以下是删除 /tmp/test目录的例子。目录的完全合规的名称必须被给出否则会在当前目录下搜索该目录。 import os# 删除”/tmp/test”目录 os.rmdir( /tmp/test ) makedirs() 可生成多层递归目录 getcwd()和chdir() 使用os.getcwd()函数来获取当前工作目录。当前工作目录是指Python程序当前所在的目录。 使用os.chdir()函数来改变当前工作目录。 import os # 获取当前工作目录 current_dir os.getcwd() print(当前工作目录为, current_dir) # 改变当前工作目录 os.chdir(/Users/username/Documents) new_dir os.getcwd() print(新的工作目录为, new_dir) ‘’’ 当前工作目录为 /Users/username/Desktop 新的工作目录为 /Users/username/Documents ’‘’ listdir() os.listdirpath:将路径下所有文件存到list中 import osos.getcwd() D:\\pythontest\\ostestos.listdir(os.getcwd()) [hello.py, test.txt] chflags() 用于设置路径的标记为数字标记 语法格式如下 os.chflags(path, flags) 参数 path -- 文件名路径或目录路径。 flags -- 可以是以下值 stat.UF_NODUMP: 非转储文件stat.UF_IMMUTABLE: 文件是只读的stat.UF_APPEND: 文件只能追加内容stat.UF_NOUNLINK: 文件不可删除stat.UF_OPAQUE: 目录不透明需要通过联合堆栈查看stat.SF_ARCHIVED: 可存档文件(超级用户可设)stat.SF_IMMUTABLE: 文件是只读的(超级用户可设)stat.SF_APPEND: 文件只能追加内容(超级用户可设)stat.SF_NOUNLINK: 文件不可删除(超级用户可设)stat.SF_SNAPSHOT: 快照文件(超级用户可设) 该方法没有返回值。 import os,statpath /tmp/foo.txt# 为文件设置标记使得它不能被重命名和删除 flags stat.SF_NOUNLINK retval os.chflags( path, flags) print 返回值: %s % retval chmod() 用于更改文件或目录的权限。 语法格式如下 os.chmod(path, mode) 参数 path -- 文件名路径或目录路径。 flags -- 可用以下选项按位或操作生成 目录的读权限表示可以获取目录里文件名列表 执行权限表示可以把工作目录切换到此目录 删除添加目录里的文件必须同时有写和执行权限 文件权限以用户id-组id-其它顺序检验,最先匹配的允许或禁止权限被应用。 stat.S_IXOTH: 其他用户有执行权0o001stat.S_IWOTH: 其他用户有写权限0o002stat.S_IROTH: 其他用户有读权限0o004stat.S_IRWXO: 其他用户有全部权限(权限掩码)0o007stat.S_IXGRP: 组用户有执行权限0o010stat.S_IWGRP: 组用户有写权限0o020stat.S_IRGRP: 组用户有读权限0o040stat.S_IRWXG: 组用户有全部权限(权限掩码)0o070stat.S_IXUSR: 拥有者具有执行权限0o100stat.S_IWUSR: 拥有者具有写权限0o200stat.S_IRUSR: 拥有者具有读权限0o400stat.S_IRWXU: 拥有者有全部权限(权限掩码)0o700stat.S_ISVTX: 目录里文件目录只有拥有者才可删除更改0o1000stat.S_ISGID: 执行此文件其进程有效组为文件所在组0o2000stat.S_ISUID: 执行此文件其进程有效用户为文件所有者0o4000stat.S_IREAD: windows下设为只读stat.S_IWRITE: windows下取消只读 该方法没有返回值。 import os, sys, stat# 假定 /tmp/foo.txt 文件存在设置文件可以通过用户组执行os.chmod(/tmp/foo.txt, stat.S_IXGRP)# 设置文件可以被其他用户写入 os.chmod(/tmp/foo.txt, stat.S_IWOTH)print 修改成功!! fstat()和stat() 返回文件描述符fd的状态类似 stat()。 语法格式如下 os.fstat(fd) 返回文件描述符fd的状态。 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: 文件状态信息的修改时间不是文件内容的修改时间 import os, sys# 打开文件 fd os.open( foo.txt, os.O_RDWR|os.O_CREAT )# 获取元组 info os.fstat(fd)print 文件信息 :, info# 获取文件 uid print 文件 UID :%d % info.st_uid# 获取文件 gid print 文件 GID :%d % info.st_gid# 关闭文件 os.close( fd)‘ 文件信息 : (33261, 3753776L, 103L, 1, 0, 0, 102L, 1238783197, 1238786767, 1238786767) 文件 UID :0 文件 GID :0 ‘ walk() 一个遍历目录数的函数它以一种深度优先的策略depth-first访问指定的目录。 os.walk(toppath,topdownTrue,oneerrorNone) 参数 top 表示需要遍历的目录树的路径。参数 topdown 默认为 True 表示首先返回根目录树下的文件然后再遍历目录树的子目录。 当topdown 的值为 False 时则表示先遍历目录树的子目录返回子目录下的文件最后返回根目录下的文件。参数 oneerror 的默认值为 None 表示忽略文件遍历时产生的错误如果不为空则提供一个自定义函数提示错误信息后边遍历抛出异常。 os.walk() 函数的返回值是一个生成器(generator)每次遍历的对象都是返回的是一个三元组 (root,dirs,files)该元组有3个元素这3个元素分别表示每次遍历的路径名目录列表和文件列表。 root 代表当前遍历的目录路径string类型。 dirs 代表root路径下的所有子目录名称list类型列表中的每个元素是string类型代表子目录名称。 files 代表root路径下的所有子文件名称list类型列表中的每个元素是string类型代表子文件名称。 ‘’ /home/root/1.txt2.txt3.txt/zhang/zhang_1.mp4zhang_2.mp4zhang_3.mp4/litest.txthai.mp4 ‘’import os from os.path import joinhome_path /homefor (root, dirs, files) in os.walk(home_path):print(root)print(dirs)print(files)print( * 50)‘’ /home [root, zhang, li] [test.txt, hai.mp4]/home/root [] [1.txt, 2.txt, 3.txt]/hoome/zhang [] [zhang_1.mp4, zhang_2.mp4, zhang_3.mp4]/home/li [] []‘’一共三行 第1行代表当前遍历的目录我们称为root目录 第2行代表root目录下的子目录列表我们称为dirs子目录列表 第3行代表root目录下的子文件列表我们称为files子文件列表注意上面的列表为空就代表当前遍历的root目录下没有子目录或者没有子文件。 遍历home目录下获取所有的目录和文件的绝对路径 import os from os.path import joinhome_path /homefor (root, dirs, files) in os.walk(home_path):for dir in dirs:print(join(root, dir))for file in files:print(join(root, file))‘’ /home /home/root /home/zhang /home/li /home/test.txt /home/hai.mp4 /home/root/1.txt /home/root/2.txt /home/root/3.txt /home/zhang/zhang_1.mp4 /home/zhang/zhang_2.mp4 /home/zhang/zhang_3.mp4 ‘ import osdef walk(path):if not os.path.exists(path):return -1for root,dirs,names in os.walk(path):for filename in names:print(os.path.join(root,filename)) # 路径和文件名连接构成完整路径if __name____main__:path C:\\Users\\Administrator\\Desktop\\2017-9-1walk(path)‘’ C:\Users\Administrator\Desktop\2017-9-1\2017-9-1.txt C:\Users\Administrator\Desktop\2017-9-1\2017-9-1storage.txt C:\Users\Administrator\Desktop\2017-9-1\apk.conf C:\Users\Administrator\Desktop\2017-9-1\数据采集导入质量统计_2017-09-01.docx C:\Users\Administrator\Desktop\2017-9-1\test1\2017-9-1.txt C:\Users\Administrator\Desktop\2017-9-1\test2\2017-9-1.txt ‘ system() 运行shell命令 eg执行ls -a 1.txt命令 import osos.system(‘ls -a 1.txt’) popen() 是 Python 中用于执行一个 shell 命令并获取输出结果的方法。它返回一个 file-like object可以像文件一样进行读取操作。下面是一个使用 os.popen 的例子 import os# 执行 shell 命令并获取输出结果 output os.popen(ls -l).read()# 打印输出结果 print(output) 上面的例子执行了 ls -l 命令并将结果存储在 output 变量中。然后使用 print 函数将结果打印出来。 语法格式如下 os.popen(command[, mode[, bufsize]]) 参数 command -- 使用的命令。mode -- 模式权限可以是 r(默认) 或 w。bufsize -- 指明了文件需要的缓冲大小0意味着无缓冲1意味着行缓冲其它正值表示使用参数大小的缓冲大概值以字节为单位。负的bufsize意味着使用系统的默认值一般来说对于tty设备它是行缓冲对于其它文件它是全缓冲。如果没有改参数使用系统的默认值。 返回一个文件描述符号为fd的打开的文件对象 os.environ os.environ 是一个用于获取和设置操作系统环境变量的模块。 import os# 获取全部环境变量 env_variables os.environ print(env_variables)# 获取指定环境变量的值 python_path os.environ.get(PYTHONPATH) print(python_path)# 修改环境变量的值 os.environ[MY_VARIABLE] my_value os.name 导入的依赖特定操作系统的模块的名称返回’posix’表示Linuxnt’表示Windowsjava’表示Java虚拟机 import osname os.name if name posix:print (this is Linux or Unix) elif name nt:print (this is windows) else:print (this is other system) os的一些表现形式参数 os中定义了一组文件、路径在不同操作系统中的表现形式参数如 os.sep \\os.extsep .os.pathsep ;os.linesep \r\n
http://www.dnsts.com.cn/news/6035.html

相关文章:

  • 网站备案流程实名认证工商企业年报查询入口
  • 网站建设与管理题南昌官网seo收费标准
  • 有哪些可以做推广的网站seo和sem推广
  • 国外网站流量wordpress怎么上传视频
  • 怎么做网站的自然排名网站建设深圳龙华
  • 做热饮店网站网站做排名
  • 网站管理后台源码建设银行网站网页丢失
  • 兼职网站平台有哪些前端培训机构出来的好找工作吗
  • 网站建设面试问题长春市网络品牌推广
  • 重庆华鼎达网站建设开发一个电商平台
  • 厦门建行网站首页在手机上怎么赚钱
  • 织梦网站栏目访问目录百度是国企还是央企
  • 网站建设服务是什么做效果图比较好的模型网站
  • 网站图片做cdn设计网站界面
  • 制作网页与网站开发如何学习网页设计网页
  • 深圳排名网站合肥免费做网站
  • 图像处理专业网站西安建网站网站推广
  • php 网站 教程wordpress缩进去的边栏
  • 网站建设网站定制贵阳市住房城乡建设局八大员网站
  • 中国服务器在外国网站有哪些百度手机助手app免费下载
  • 公司做网站计入什么科目wordpress 托管建站
  • 徐州免费模板建站吉林seo排名公司
  • 广州网站建设小程序高古楼网站 做窗子
  • 成功企业网站必备要素wordpress微商货源网
  • 哪些网站做装修陶瓷行业网站建设招标书
  • 网站建站方式西安手机网站建设
  • 能源公司网站建设阿里巴巴网站怎么做
  • 淘宝运营培训班常州百度seo
  • 违法网站开发人员搜seo
  • 哪个网站可以做印章图案外国人做的汉字网站