找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2080|回复: 2

[求助] 新手求助Pytho3并行复制文件问题!

1

主题

1

帖子

1

积分

贫民

积分
1
幽你一默 发表于 2018-4-20 20:50:05 | 显示全部楼层 |阅读模式
感谢每一位看我问题,回答我问题的小哥哥、小姐姐,谢谢你们!

我想同时从局域网内两个不同的路径复制文件到本地的两个文件夹,单个文件很大,需要很长时间才能复制完成。
所以我就想让两个复制任务同时执行,这样就能节省一半的时间。

主机1端口带宽200M
主机2端口带宽200M
本机端口带宽1000M
局域网带宽1000M

以下是我写的复制文件的程序代码,请问怎么改才能实现并行复制文件的效果呢?谢谢解答!


  1. import os
  2. import shutil
  3. import datetime
  4. import time

  5. now = datetime.datetime.now()
  6. print("现在时间是:",now,"程序启动!")
  7. def main(starth=8,startm=8,stoph=8,stopm=40):
  8.    
  9.     while True:
  10.         now = datetime.datetime.now()
  11.         if now.hour >= starth and now.minute >= startm:
  12.             print("到达程序设定时间,任务开始执行!")
  13.             print("任务启动时间:",now)
  14.             
  15.             shutil.copy(r'\\172.38.9.220\share\share.zip',r'E:\文件暂存\9.220')      #20分钟左右
  16.             shutil.copy(r'\\172.38.10.124\share\share.zip',r'E:\文件暂存\10.124')    #15分钟左右
  17.             
  18.             now = datetime.datetime.now()
  19.             if now.hour == stoph and now.minute == stopm:
  20.                 print("到达设定任务结束时间,任务结束!")

  21.                 break
  22.             
  23.         else:
  24.             time.sleep(20)
  25. main()
复制代码


回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
L_A.xueyu 发表于 2018-4-24 16:43:42 | 显示全部楼层
或许你可以尝试以下多线程来达到同时的效果
回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-4-24 17:41:27 | 显示全部楼层
个人想法 多线程是利用cpu的空闲,当网速大于磁盘写速度时,低速i/o就成了瓶颈,试试在复制文件过程中观察i/o的使用状态,确定是磁盘写问题引起的话,可以用ssd作为缓存,等文件复制好再转存磁盘。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表