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 ...
随机推荐
- Unity3D打包 将发布的exe文件打包成一个Windows安装文件(自解压文件)
Unity打包Standalone时 会出现一个exe文件和一个data文件夹 可是我们平常见过的软件 基本没有这种像这种结构的 一般都是一个安装文件,然后点击安装,选择路径,生成快捷方式- 本篇博客 ...
- python 全栈开发,Day2
python基础二(基础数据类型) 一.数据 1 什么是数据? x=10,10是我们要存储的数据 2 为何数据要分不同的类型 数据是用来表示状态的,不同的状态就应该用不同的类型的数据去表示 3 数据类 ...
- 移动端常用的meta标签,媒体查询以及一些样式设置《转载收藏》
<meta name="screen-orientation" content="portrait"> <meta name="fu ...
- SpringtMVC中配置 <mvc:annotation-driven/> 与 <mvc:default-servlet-handler/> 源码解析
上一篇有提到,当有.无这两个标签时,SpringtMVC 底层所采用的 HandlerMapping 以及 HandlerAdapter 是不一样的.现在就来进行源码调试,揭开 SpringtMVC ...
- linux(ubuntu)环境下安装及配置JDK
安装完IDEA之后遇到了问题,发现jdk安装完之后配置环境变量好困难,下面总结一下我的安装及配置方式: JDK下载链接:http://download.oracle.com/otn-pub/java/ ...
- c++ dynamic_cast 和 static_cast 的区别
今天在看王道宝典的时候看到dynamic_cast ,一直都没用过,也不了解,今天来总结一下. dynamic_cast 和 static_cast 都可以用来强制转换指针类型,但不同的是dynami ...
- Maven-06: 插件的内置绑定
Maven的生命周期与插件相互绑定,用以完成实际的构建任务.具体而言,是生命周期的阶段与插件的目标相互绑定,以完成某个具体的构建任务.例如项目编译这一任务,它对应default生命周期的compile ...
- centos下mongodb备份(dump)与还原(restore)
数据服务器,数据库采用mongodb数据库 安装:通过增加配置安装mongodb-org,版本为3.0.7,yum安装 yum install mongodb-org 数据备份与 ...
- Hibernate学习(1)- 初识
一.概念引入 1.持久化: 狭义概念:数据存储在物理介质不会丢失. 广义概念:对数据的CRUD操作都叫做持久化. 2.加载: hibernate里,数据从数据库中加载到session. 3.ORM - ...
- 关于BufferedReader的readLine方法遇到的坑
今天偶然用到BufferedReader,在读取文本后输出数据的时候遇到了隔行输出的问题. 如: 床前明月光 疑是地上霜 123456 789789 输出的为:疑是地上霜789789 找了一下,最终找 ...