我想要一个监听USB端口并在连接后将USB路径保存到文件中的python程序:
import string
from ctypes import windll
import time
import os
def get_drives():
drives = []
bitmask = windll.kernel32.GetLogicalDrives()
for letter in string.uppercase:
if bitmask & 1:
drives.append(letter)
bitmask >>= 1
return drives
if __name__ == '__main__':
before = set(get_drives())
print ('Please wait...')
time.sleep(5)
after = set(get_drives())
drives = after - before
delta = len(drives)
if (delta):
for drive in drives:
if os.system("cd " + drive + ":") == 0:
newly_mounted = drive
print "There were %d drives added: %s. Newly mounted drive letter is %s" % (delta, drives, newly_mounted)
f = open( 'path.txt', 'w' )
f.write(newly_mounted)
f.close()
else:
print "Sorry, I couldn't find any newly mounted drives."然后在主文件中调用它:
import os
import time
while True:
os.system("python test.py")
time.sleep(1)但它不能正常工作,当我连接USB时,它有时工作,有时工作。有什么方法可以改进它吗?
发布于 2015-07-03 07:36:57
您的实现存在一些问题:
无论如何,假设轮询是最好的解决方案,那么test.py中的代码应该是这样的(注意,test.py永远不会退出,否则您可能会错过任何更改):
before = set(get_drives())
while true:
time.sleep(5)
after = set(get_drives())
drives = after - before
delta = len(drives)
if (delta):
# ...process delta
...
# finally, after becomes the new before WITHOUT re-reading the drives, that will happen again in five seconds...
before = after发布于 2019-01-23 17:13:15
您好,我使用python refer drive-monitoring制作了这个应用程序,它是一种基于事件的方法来创建有关可移动驱动器历史记录和驱动器中的文件系统事件的报告。
https://stackoverflow.com/questions/31196057
复制相似问题