首页 技术 正文
技术 2022年11月17日
0 收藏 603 点赞 2,792 浏览 3721 个字

python os模块

 Python os 模块提供了一个统一的操作系统接口函数一、对于系统的操作1、os.name 当前使用平台其中 ‘nt’ 是 windows,’posix’ 是linux 或者 unix2、os.sep输出操作系统的特定的路径分隔符。Win下为“\”,Linux下为“/”3、os.pathsep 输出分格符输出用于分割文件路径的字符串。 Windows下是’;’,Linux下为“:”4、os.linesep 换行符输出当前平台是用的行终止符,win下为“\r\n”,Linux下为“\n”,Mac使用’\r’。5、os.environ获取系统环境变量path6、os.system(‘dir c:\\’)直接执行系统命令假定有一个shell脚本test.sh:
xxx@ubuntu:~$ vi test.sh
xxx@ubuntu:~$ more test.sh
#!/bin/bash
echo ‘hello python!’
echo ‘hello world!’
exit 1 >>> import os
>>> os.system(“./test.sh”)
hello python!
hello world!
256 7、os.popen()执行一个系统命令,把执行结果存到文件句柄中(和python中open函数类似)dirList=os.popen(‘dir d:\\tmp’)for i in dirList:print i >> import os
>>> os.popen(“./test.sh”)
<open file ‘./test.sh’, mode ‘r’ at 0x7f6cbbbee4b0>
>>> f=os.popen(“./test.sh”)
>>> f
<open file ‘./test.sh’, mode ‘r’ at 0x7f6cbbbee540>
>>> f.readlines()
[‘hello python!\n’, ‘hello world!\n’] 二、对于目录的操作1、os.getcwd()获取当前的工作目录,即当前Python脚本工作的目录路径。结果:E:\python\05072、os.chdir(‘d:\\’)修改当前的工作目录3、os.curdir返回当前目录4、os.pardir目录切换到父目录(上一级目录) 三、对文件的操作1、os.listdir(‘e:\\tmp’)列出指定目录下的所有文件和子目录,包括隐藏文件或目录,并以列表形式返回。2、os.rename(‘e:\\tmp\\1.txt’,’e:\\tmp\\1new.txt’)修改文件名3、os.stat(‘e:\\tmp\\02.txt’)获取文件的生命周期中的各个时间4、os.utime(path[, (atime, mtime)]) 修改文件的时间属性设置文件的access and modified time为给定的时间如果未指定atime和mtime参数,修改的时间将会是当前的时间。5、os.access()输出文件是否有写的权限:print os.access(fileName,os.W_OK)print os.access(fn,os.R_OK) 文件是否有读的权限print os.access(fn,os.X_OK) 文件是否有执行的权限 四、os.path1、os.path.exists(path)返回当前的目录或者文件是否存在判断path是否存在,如果存在返回True,否则返回False。2、os.path.isabs(path)判断路径是否为绝对路径判断path是否是绝对路径,如果是返回True,否则返回False。3、os.path.isfile(path)判断是否是文件判断path是否是文件,如果是返回True,否则返回False。4、os.path.isdir(path)判断是否是目录判断path是否是目录,如果是目录返回True,否则返回False。5、os.path.getsize(path): 单位是字节返回文件或者目录的大小。获得文件大小,如果name是目录返回0L;如果name代表的目录或文件不存在,怎会报WindowsError异常。6、os.path.abspath(path)获取绝对路径,(但这个路径不一定是真实存在的路径)eg:print os.path.abspath(‘d:\\tmp\\test13.txt’)print os.path.abspath(‘test13.txt’)#返回当前执行目录下的文件名的路径,文件没有的时候也会返回print os.getcwd()结果:d:\tmp\test13.txtD:\python\0512\test13.txtD:\python\05127、os.path.normpath(path)把path转换为标准的路径。用于解决跨平台问题 五、从路径中获取盘符,文件名,扩展名,目录1、os.path.split(path)对文件路径做分割,把最后一个\\后面的文件会目录分割出来将path分割成目录和文件名(事实上,如果你完全使用目录,它也会将最后一个目录作为文件名而分离,同时它不会判断文件或目录是否存在),并存于元组中返回。eg:print os.path.split(‘D:\\tt4\\c12’)print os.path.split(‘D:\\tt4\\c12\\’)print os.path.split(‘D:\\tt4\\c12\\t1.txt’)结果:(‘D:\\tt4’, ‘c12’)(‘D:\\tt4\\c12’, ”)(‘D:\\tt4\\c12’, ‘t1.txt’)2、os.path.dirname(path) 返回目录的名称返回path的目录路径,其实就是os.path.split(path)的第一个元素。3、os.path.basename(path)返回文件的名称返回path最后的文件名。如果path以/或\结尾,就会返回空值。即os.path.split(path)的第二个元素。4、os.path.splitext(path)把路径和扩展名切分开print os.path.splitext(’01.py’)print os.path.splitext(‘d:\\tmp\\001.txt’)print os.path.splitext(‘D:\\tt4\\c12′)结果:(’01’, ‘.py’)(‘d:\\tmp\\001’, ‘.txt’)(‘D:\\tt4\\c12’, ”)fileName,expandName = os.path.splitext(f)把路径和扩展名分开后可以直接赋值给两个变量,其实得到的是一个元组5、os.path.splitdrive(path)拆分驱动器(盘符)和后面的路径。拆分驱动器和文件路径,并以元组返回结果;主要针对win有效,Linux元组第一个总是空。返回结果是元祖6、os.path.join(path,*paths)把所有的路径组合成绝对路径。连接两个或更多的路径名,中间以“\”分隔,如果所给的参数中都是绝对路径名,那最先给的绝对路径将会被丢弃 六、os.walk()os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。

在Unix,Windows中有效。

语法

walk()方法语法格式如下:

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

参数

  • top — 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。

  • topdown –可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。

  • onerror — 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。

  • followlinks — 设置为 true,则通过软链接访问目录。

以下实例演示了 walk() 方法的使用:

#!/usr/bin/python
# -*- coding: UTF-8 -*-import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))

执行以上程序输出结果为:

./.bash_logout
./amrood.tar.gz
./.emacs
./httpd.conf
./www.tar.gz
./mysql.tar.gz
./test.py
./.bashrc
./.bash_history
./.bash_profile
./tmp
./tmp/test.py
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,104
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,581
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,428
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,835
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,918