赞
踩
shutil.copyfileobj(fsrc, fdst[, length])
将类似文件的对象fsrc的内容复制到类似文件的对象fdst。
shutil.copyfile(src, dst, *, follow_symlinks=True)
将名为src的文件的内容(无元数据)复制到名为dst的文件,然后返回dst。
shutil.copy(src, dst, *, follow_symlinks=True)
将文件src复制到文件或目录dst。src和dst应为字符串。如果dst指定目录,则文件将使用src的基本文件名复制到dst中。返回新创建的文件的路径。
shutil.copy2(src, dst, *, follow_symlinks=True)
与copy()相同,但copy2()也尝试保留所有文件元数据。
shutil.move(src, dst, copy_function=copy2)
递归地将文件或目录(src)移动到另一个位置(dst),并返回目标
>>> import shutil # copyfileobj只是了解底层原理,实际代码不需要使用 >>> f1 = open('/bin/ls', 'rb') >>> f2 = open('/tmp/list4', 'wb') >>> shutil.copyfileobj(f1, f2) >>> f1.close() >>> f2.close() # shutil.copyfile只拷贝内容 >>> shutil.copyfile('/bin/ls', '/tmp/list5') # shutil.copy既拷贝内容,又拷贝权限 >>> shutil.copy('/bin/ls', '/tmp/list6') # shutil.copy2相当于系统命令cp -p >>> shutil.copy2('/bin/ls', '/tmp/list7') # shutil.move => 相当于系统命令mv >>> shutil.move('/tmp/list7', '/var/tmp/list') # copytree相当于cp -r >>> shutil.copytree('/etc/security', '/tmp/security') >>> shutil.move('/tmp/security', '/var/tmp/auquan') # rmtree 相当于rm -rf >>> shutil.rmtree('/var/tmp/auquan') # 删除单个文件的函数在os模块 >>> import os >>> os.remove('/tmp/list5') # 改变属主属组 >>> shutil.chown('/tmp/list', user='bob', group='bob')
os.system、os.spawn*
直接执行命令
>>> subprocess.run('ls')
>>> subprocess.run(['ls','/home'])
>>> subprocess.run('ls /home')
... ...
FileNotFoundError: [Errno 2] No such file or directory: 'ls /home': 'ls /home'
>>> subprocess.run(['ls', '~'])
ls: cannot access ~: No such file or directory
通过shell执行命令
>>> subprocess.run(['ls', '~'], shell=True)
>>> subprocess.run('ls /home', shell=True)
run方法返回值
>>> result = subprocess.run(['ls', '/home'])
>>> result.args
['ls', '/home']
>>>
输出和错误
>>> result = subprocess.run(['ls', '/home'], stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
>>> result.stdout
b'alice\nbob\njerry\nlisi\nStudent\ntom\nwangwu\n'
>>> print(result.stdout.decode())
alice
bob
jerry
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。