Python中系统命令

Python中系统命令

1:os.system

例如:查看cpu信息

>>> import os

>>> os.system("cat /proc/cpuinfo")

 

2:os.popen

该方法不但执行命令还返回执行后的信息对象,是通过一个管道文件将结果返回

>>> output=os.popen("cat /proc/cpuinfo")

>>> print(output.read())

 

3:commands模块(返回状态模块)

Commands.getoutput(cmd):返回命令的执行结果,没有返回值

commands.getstatusoutput(cmd) 返回一个元组(status,output)

status代表的shell命令的返回态,如果成功的话是0;output是shell的返回的结果

 

>>> import commands

>>> commands.getstatusoutput("ls /bin/ls")

(0, '/bin/ls')===》(这里0表示命令的返回状态,后面返回命令的执行结果)

 


4:模块subprocess

Subprocess.call: 执行命令,并返回执行状态,其中shell参数为False时,命令需要通过列表的方式传入,当shell为True时,可直接传入命令

 

subprocess.check_call():用法与subprocess.call()类似,区别是,当返回值不为0时,直接抛出异常

 

在当前目录下创建一个subprocesstest文件夹

a=subprocess.Popen("mkdir subprocesstest",shell=True,cwd='.')

 


5:shutil

(1):将文件内容考贝到另一个文件中(shutil.copyfileobj(fsrc, fdst[, length])

>>> import shutil

>>> shutil.copyfileobj(open('old.xml','r'),open('new.xml','w'))

这里把old.xml中的内容考贝到new.xml中

(2): shutil.move(source,destination):将source移动到destination中,如果destination 指向一个文件夹,那么 source 文件将被移动到 destination 中,并且保持其原有名字,如果 destination 指向一个文件,那么 source 文件将被移动并重命名

(3):shutil.copyfile(src, dst)考贝文件

>>> import shutil

>>> shutil.copyfile('f1.log','f2.log')

(4):shutil.copymode(src, dst):仅拷贝权限。内容、组、用户均不变

(5):shutil.copystat(src, dst)仅拷贝状态的信息,包括:mode bits, atime, mtime, flags
(6):shutil.copy(src, dst)拷贝文件和权限
(7):shutil.copy2(src, dst):拷贝文件和状态信息

(8):shutil.copytree(src, dst, symlinks=False, ignore=None):递归的去拷贝文件夹

例如:

>>> import shutil

>>> shutil.copytree("f1","f2")

上面的例子中,将f1文件考贝到f2文件包括子文件,其实相当于复制一份f1命名为f2,目录文件应该不存在

(9): shutil.rmtree(path[, ignore_errors[, onerror]]):递归的去删除文件

删除整个文件夹,包括子文件夹

(10):shutil.make_archive(base_name, format,...):创建压缩包并返回文件路径,例如:zip、tar

base_name:要压缩成的文件名称

format:压缩成的格式(zip,tar,tar.gz,rar)

root_dir:要压缩的文件夹路径

 

案例:

>>> import shutil

>>> ret=shutil.make_archive("abc",'zip',root_dir="/home/gaoyuxia/Test")

将/home/gaoyuxia/Test目录下的所有文件压缩成abc.zip

将文件压缩后放在指定路径:

>>> ret=shutil.make_archive("/home/gaoyuxia/abc",'zip',root_dir="/home/gaoyuxia/Test")

 

(11):

 


 

6:ZipFile

 

7:TarFile


8:time模块

#------将结构化时间转成字符串时间strftime

print(time.strftime("%Y---%m-%d %X",time.localtime()))

#------将字符串时间转成结构化时间strptime

print(time.strptime("2016:12:24:17:50:36","%Y:%m:%d:%X"))

 

猜你喜欢

转载自www.cnblogs.com/gaoyuxia/p/10401698.html