# import sys # sys.path # sys.argv # 用来接收python解释器执行py文件后跟的参数 #例如:python cp.py argv1 argv2 arg3 #sys.argv=['cp.py','argv1','argv2','argv3']
相关代码
import sys
# print(sys.argv)
# src_file=input('请输入源文件路径:')
src_file=sys.argv[1]
# dst_file=input('请输入目标文件路径:')
dst_file=sys.argv[2]
with open(src_file,'rb') as read_f,
open(dst_file,'wb') as write_f:
for line in read_f:
write_f.write(line)
打印进度条#背诵
import time
def make_progress(percent,width=50):
if percent > 1:percent=1
show_str=('[%%-%ds]' % width) % (int(percent * width) * '#')
print('
%s %s%%' %(show_str,int(percent * 100)),end='')
total_size=102511
recv_size=0
while recv_size < total_size:
time.sleep(0.1) # 模拟经过了0.5的网络延迟下载了1024个字节
recv_size+=1024
# 调用打印进度条的功能去打印进度条
percent=recv_size / total_size
make_progress(percent)
subprocess模块
# import os
# os.system('tasklist') #执行系统命令
import subprocess#这个模块就用来执行系统命令
import time#qq不是进程qq是程序,双击qq启动起来才叫启动一个进程
obj=subprocess.Popen( #这一步仅仅是生了一个儿子出来
'tasklist',
shell=True,#shell 就是命令解释器
stdout=subprocess.PIPE, #命令正确运行的结果
stderr=subprocess.PIPE #命令运行错误的结果 PIPE 进程与进程之间共享数据用的
)
time.sleep(10)
# print(obj)
# stdout_res=obj.stdout.read()
# print(stdout_res.decode('gbk'))
# print(stdout_res)
# stderr_res1=obj.stderr.read()
# stderr_res2=obj.stderr.read()
# stderr_res3=obj.stderr.read()
# print(stderr_res1.decode('gbk'))
# print(stderr_res1)
# print(stderr_res2)
# print(stderr_res3)
# import time
# time.sleep(50)
subprocess模块
#subprocess 模块
import subprocess #这个模块用来执行系统命令 subprocess子进程的意思
import time
obj=subprocess.Popen(
'tasklist',
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE
)
# print(obj)#得到一个内存地址
# time.sleep(10)#可以看到进程 子进程结束 父进程在睡10秒
#这一步代表生了个儿子出来
#第一个参数必须是字符串形式的命令 第二个必须加shell=True shell的意思是命令解释器 这一步其实在调命令解释器
#stdout 代表命令正确运行的结果
#stderr 代表命令错误运行的结果
#管道其实就是进程与进程之间共享数据的地方
#正确的命令从管道里面输给父进程,让父进程使用
#错误的结果也往管道里面丢 这样取得时候就有针对性
stdout_res=obj.stdout.read()#从正确管道读结果
print(stdout_res.decode('gbk'))#bytes类型
#总结
#subprocess模块的应用