Python模块 - os , sys.shutil
os 模块是与操作系统交互的一个接口
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd
os.curdir 返回当前目录: ('.')
os.pardir 获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2') 可生成多层递归目录
os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove() 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
- os.stat_result(st_mode=33206, st_ino=14636698789082183, st_dev=3129870583, st_nlink=1, st_uid=0, st_gid=0, st_size=3176, st_atime=1523447944, st_mtime=1523447944, st_ctime=1523424883)
os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n" os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command") 运行shell命令,直接显示 os.environ 获取系统环境变量
os.path.abspath(path) 返回path规范化的绝对路径
os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path) 如果path是绝对路径,返回True
os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间
os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
sys模块(* * *)
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.exit(n) 退出程序,正常退出时exit(0)
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.exc_info() 返回异常信息三元元组
sys.platform 返回操作系统平台名称
进度条: import sys,time
for i in range(10):
sys.stdout.write('#')
time.sleep(1)
sys.stdout.flush()
另一种方法:
import sys, time
def view_bar(num,total):
rate = float(num) / float(total)
rate_num = int(rate * 100)
r = '\r[%s%s]%d%%' % ("=" * num," " * (100 - num),rate_num,)
sys.stdout.write(r)
sys.stdout.flush() if __name__ == '__main__':
for i in range(0,101):
time.sleep(0.1)
view_bar(i,100)
shutil
shutil模块提供高级文件操作,包括文件的删除、拷贝等,也支持文件压缩。
copy()
copy2()
shutil.copy2('test2.txt','test_copy2.txt') # test_copy2.txt
copyfile()
print(shutil.copyfile('test.txt','test_copyfile.txt')) # test_copyfile.txt
copyfileobj()
src = 'test2.txt'
dst = 'test_copyfileobj.txt'
with open(src,'rb') as fsrc:
with open(dst,'wb') as fdst:
shutil.copyfileobj(fsrc,fdst,length=1024)
copymode()
shutil.copyfile('/tmp/ptest/src.txt','/tmp/ptest/dst_copyfile.txt')
# 执行前:
# -rw-r--r-- 1 root root 9 Feb 1 13:27 dst_copyfile.txt
# -rw-rw-r-- 1 tibco tibco 9 Feb 1 13:25 src.txt
shutil.copymode('/tmp/ptest/src.txt','/tmp/ptest/dst_copyfile.txt')
# 执行后:
# -rw-rw-r-- 1 root root 9 Feb 1 13:27 dst_copyfile.txt
# -rw-rw-r-- 1 tibco tibco 9 Feb 1 13:25 src.txt
copystat()
shutil.copystat('/tmp/ptest/src.txt','/tmp/ptest/dst_copyfile.txt')
# 执行前
# -rw-rw-r-- 1 root root 9 Feb 1 13:27 dst_copyfile.txt
# -rwx------ 1 tibco tibco 9 Feb 1 13:25 src.txt
# 执行后
# -rwx------ 1 root root 9 Feb 1 13:25 dst_copyfile.txt
# -rwx------ 1 tibco tibco 9 Feb 1 13:25 src.txt
copytree()
shutil.copytree('/tmp/ptest/dir1','/tmp/ptest/dir2')
执行前:
ptest
├── dir1
│ ├── dir1_1
│ │ ├── dir1_1_1
│ │ │ ├── file1-1-1
│ │ │ └── file1-1-3
│ │ ├── file1-1
│ │ └── file1-2
│ └── file-1
├── dst_copyfile.txt
└── src.txt
执行后
ptest
|-- dir1
| |-- dir1_1
| | |-- dir1_1_1
| | | |-- file1-1-1
| | | `-- file1-1-3
| | |-- file1-1
| | `-- file1-2
| `-- file-1
|-- dir2
| |-- dir1_1
| | |-- dir1_1_1
| | | |-- file1-1-1
| | | `-- file1-1-3
| | |-- file1-1
| | `-- file1-2
| `-- file-1
|-- dst_copyfile.txt
`-- src.txt
rmtree()
move()
文件压缩
get_archive_formats()
print(shutil.get_archive_formats())
# [('bztar', "bzip2'ed tar-file"), ('gztar', "gzip'ed tar-file"), ('tar', 'uncompressed tar file'), ('zip', 'ZIP file')]
make_archive()
# 将/tmp/ptest/aaa.tar.gz解压缩的/tmp/ptest下
shutil.unpack_archive('/tmp/ptest/aaa.tar.gz','/tmp/ptest/','gztar')
print(shutil.disk_usage(("d:/")))
#result:
usage(total=209715195904, used=14263074816, free=195452121088)
chown()
shutil.chown('/tmp/ptest/dir1.tar.gz',user='root',group='root')
#执行前:
-rw-rw-r-- 1 tibco tibco 258 Feb 1 15:09 dir1.tar.gz
# 执行后
-rw-rw-r-- 1 root root 258 Feb 1 15:09 dir1.tar.gz
Python模块 - os , sys.shutil的更多相关文章
- Python常用模块os & sys & shutil模块
OS模块 import os ''' os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录: ...
- python模块 os&sys&subprocess&hashlib模块
os模块 # os模块可根据带不带path分为两类 # 不带path print(os.getcwd()) # 得到当前工作目录 print(os.name) # 指定你正在使用的操作系统,windo ...
- Python中os和shutil模块实用方法集…
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- python模块之sys和subprocess以及编写简单的主机扫描脚本
python模块之sys和subprocess以及编写简单的主机扫描脚本 1.sys模块 sys.exit(n) 作用:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.e ...
- python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)
一:os模块 os模块提供了许多允许你程序与操作系统直接交互的功能 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname&quo ...
- python模块之os sys shutil
os模块 os模块是与操作系统交互的一个接口 #当前执行这个python文件的工作目录相关的工作路径 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir( ...
- Python常用模块(logging&re&时间&random&os&sys&shutil&序列化&configparser&&hashlib)
一. logging(日志模块) 二 .re模块 三. 时间模块 四. random模块 五. os模块 六. sys模块 七. shutil模块 八. 序列化模块(json&pickle&a ...
- Python的os,shutil和sys模块
*********OS*********** os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于Windows,它是'n ...
随机推荐
- js 标签云
以前只看到wordpress上面有个标签云的效果挺6,就好奇的弄个试试,还好网上有很多小伙伴的分享了,借鉴过来了 哈哈 html代码 <!DOCTYPE html> <html&g ...
- 什么是IPFS?(二)
IPFS的的"宏伟"目标是取代HTTP, 那么先来看看IPFS是如何工作的? IPFS为每一个文件分配一个独一无二的哈希值(文件指纹: 根据文件的内容进行创建), 即使是两个文件内 ...
- iOS 组件化的几篇文章
随着工程的成长,开发人员的增多,合理的模块划分及低耦合的重要性显得愈发重要.最近在思考这方面的问题,也读了不少通过组件化解耦的文章,这里记录一下. 前 5 篇文章有些关联,建议阅读顺序,1.3.2.4 ...
- [iOS]详解调整UIButton的title和image的位置
UIButton的默认布局是:title在右,image在左; 很多时候我们需要的是title在左边,或者title在下面,这时就需要调整UIButton的TitleLabel和ImageView的位 ...
- 【Darwin】 越狱后玩耍IPhone系统
玩耍IOS系统 大家都知道IOS是自Mac OS修改而来的.而Mac OS和IOS的共同核心是Darwin,其基于FreeBSD发展而来,整体而言也是个类Unix系统.之前把自己的手机越狱之后正好开始 ...
- oracle 常用select sql语句
本人认为很实用的几条语句 1)select ... from ...into... 2)insert into ...select ... 3)select ...from ...left join ...
- codeforce round #467(div.2)
A. Olympiad 给出n个数,让你找出有几个非零并且不重复的数 所以用stl的set //#define debug #include<stdio.h> #include<ma ...
- 【Spring系列】Spring mvc整合redis(非集群)
一.在pom.xml中增加redis需要的jar包 <!--spring redis相关jar包--> <dependency> <groupId>redis.cl ...
- 使用git将文件上传到Coding
1,首先在Coding上新建项目. 2,填写项目的相关内容. 3,建立项目后复制下面鼠标所选内容. 4,在自己的电脑中建立文件夹. 5,进入该文件夹后,点击鼠标右键,然后再点Git Clone. 6 ...
- 听翁恺老师mooc笔记(3)--指针的定义
在上一个blog学习了&运算符,使用&取了变量.数组等地址,有什么用那?如果能够将取得的变量的地址传递给函数,能否通过这个地址在函数内访问到外部这个变量?答案是肯定的,scanf(&q ...
