吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3942|回复: 15
收起左侧

[求助] python等待执行完再继续的简单方法

[复制链接]
cqwcns 发表于 2020-12-21 20:58
我希望在根目录复制一个文件,在打开,但往往文件还没有复制完,就执行了打开命令,导致找不到文件报错。
当然,文件是时大时小的,而且受到电脑速度的影响,不能直接使用time.sleep写死一个时间。
如果让popen完成在执行load_workbook,请大佬指教,谢谢。

[Python] 纯文本查看 复制代码
import os
from openpyxl import load_workbook

# 复制文件
os.popen('copy 通报模板.xlsx 通报模板2.xlsx ')

bookResult = load_workbook('通报模板2.xlsx ')

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

老东东2019 发表于 2020-12-21 21:05
起俩线程,join一下
咸鱼灭 发表于 2020-12-21 21:10
江男 发表于 2020-12-21 21:23
boxer 发表于 2020-12-21 21:33
返回的对象有read方法, 会等待复制完成才执行
[Asm] 纯文本查看 复制代码
os.popen('copy 通报模板.xlsx 通报模板2.xlsx ').read()
列明 发表于 2020-12-21 21:58
一般這種方法(函數)會有返回值的,對返回值進行判斷然後繼續下面的步驟,或者直接讓一個變量=這句命令,就會自動等方法完成進行下一句。。
choolyee 发表于 2020-12-21 22:05
await可以满足你的要求
百日蔷薇 发表于 2020-12-22 02:56
thread1=threading.Thread(target=你要暂停的函数)
传入event_obj.wait()作为判断是否继续线程的标志,默认是true
event_obj.set()设置为true,此时不影响线程进行
event_obj.clear()设置为fault,暂停线程

def 你的函数
第一步
第二步
event_obj.wait()
第三步...

主函数里写
thread1.start()
什么情况下,set为真
什么情况下,clear为假
zpy2 发表于 2020-12-22 05:20
shutil.copy和shutil.copytree

import os import shutil import tempfile filename1 = tempfile.mktemp (".txt") open (filename1, "w").close () filename2 = filename1 + ".copy" print filename1, "=>", filename2 #拷文件 shutil.copy (filename1, filename2) if os.path.isfile (filename2): print "Success" dirname1 = tempfile.mktemp (".dir") os.mkdir (dirname1) dirname2 = dirname1 + ".copy" print dirname1, "=>", dirname2 #拷目录 shutil.copytree (dirname1, dirname2) if os.path.isdir (dirname2): print "Success"


https://www.cnblogs.com/lovemo1314/archive/2010/11/11/1874975.html
rsnodame 发表于 2020-12-22 09:33
学习楼上各大佬思路
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-16 16:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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