python实例31[自动挂载虚拟盘]
在windows上使用subst和netuse
import os
import subprocess
def RunCommand(cmd):
return subprocess.call(cmd)
def RunCommandWithOutput(cmd):
p=subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
(stdoutdata, stderrdata) = p.communicate()
return p.returncode, stdoutdata, stderrdata
def SubstDriveToPath(drive, path):
substcmd = "subst" + " " + drive + " " + path
return RunCommandWithOutput(substcmd)
def UnSubstDriveToPath(drive):
unsubstcmd = "subst" + " " +drive + " " + "/d"
RunCommand(unsubstcmd)
def SubstDriveToPathF(drive, path):
UnSubstDriveToPath(drive)
UnNetuseDriveToPath(drive)
return SubstDriveToPath(drive, path)
def NetuseDriveToPath(drive, path):
netusecmd = "net use" + " " + drive + " " + path
return RunCommandWithOutput(netusecmd)
def UnNetuseDriveToPath(drive):
unnetusecmd = "net use" + " " + drive + " " + "/del"
RunCommand(unnetusecmd)
def NetuseDriveToPathF(drive, path):
UnSubstDriveToPath(drive)
UnNetuseDriveToPath(drive)
return NetuseDriveToPath(drive, path)
def AutoSubstorNetuse(path):
successful = False
if(not os.path.isdir(path) or not os.path.exists(path)):
print("path is not existed or is not a directory")
return successful
netuse = False
if(path.startswith("\\\\")):
netuse = True
useddrive = ""
for drive in "ZYXWVUTSRQPONMLKJIHGFEDCBA":
fulldrive = drive + ":"
if(netuse):
(returncode, outdata, errdata) = NetuseDriveToPath(fulldrive, path)
if(returncode == 0):
useddrive = fulldrive
break
else:
(returncode,outdata,errdata) = SubstDriveToPath(fulldrive,path)
if(returncode == 0):
useddrive = fulldrive
break
if(not useddrive == ""):
successful = True
return successful, useddrive
(returncode, outdata, errdata) = SubstDriveToPathF("Y:", "C:\\test")
(returncode1, outdata1, errdata1) = NetuseDriveToPathF("X:", "\\\\remotemachinenameorip\\shared")
(returncode, drive) = AutoSubstorNetuse("C:\\test")
(returncode, drive) = AutoSubstorNetuse("\\\\remotemachinenameorip\\shared")
强制挂载到某个虚拟盘:
SubstDriveToPathF()
NetuseDriveToPathF()
自动查找没有使用的盘来挂载:
AutoSubstorNetuse()
完!
转载于:https://www.cnblogs.com/itech/archive/2011/01/18/1934473.html
python实例31[自动挂载虚拟盘]相关推荐
- python实例31[My Stock Info]
本程序使用python3.1实现的一个运行于Windows的控制台小程序,用来显示你所关心的股票的实时价格. 1)每隔一分钟跟新一次,当然你可以改为更短的时间间隔: 2)控制台彩色显示的python模 ...
- python实例31[解析buildlog]
简单地解析VisualStudio的buildlog:(有的时候log文件太长,但是我们只是关心warning和error, 通过该程序可以直接得到所有的warning和error的行) import ...
- python实例31[文件夹清理]
使用: foldercleanup.py -d 10 -k c:\test\keepfile.txt c:\test 表示对c:\test目录只保留最近10天的子文件夹和keepfile.txt中指定 ...
- python 在软件自己自动输入-Python模拟百度自动输入搜索功能的实例
如下所示: # 访问百度,模拟自动输入搜索 # 代码中引入selenium版本为:3.4.3 # 通过Chrom浏览器访问发起请求 # Chrom版本:59 ,chromdriver:2.3 # 需要 ...
- udev udevadm介绍及linux设备重命名和自动挂载应用实例分析
(一)UDEV介绍 udev在维基百科中的定义是:udev (userspace /dev) is a device manager for the Linux kernel. As the succ ...
- python实例豆瓣代码_Python实例:通过selenium模拟登陆豆瓣
前几天写的<Python实例:分析豆瓣影片评论Ver 1.0版本>文章中,关于爬取数据过频繁导致IP被封禁的事情让我对豆瓣数据的爬取中断了.忽然想到之前有写过关于关于使用selenium库 ...
- jupyter分割代码块_科研分享—Python根据关键词自动抓取Pubmed文献标题(附全部代码)文末有福利...
写在前面:接触Python应该是8月初的一篇公众号文章,大致内容是使用py爬取数据库并汇总到本地.正好手头需要对某个领域的文献进行调研,不妨学习一下. 什么是Python? 百度说:Python (计 ...
- 使用docker安装部署Spark集群来训练CNN(含Python实例)
使用docker安装部署Spark集群来训练CNN(含Python实例) 本博客仅为作者记录笔记之用,不免有很多细节不对之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需 ...
- Linux基础知识之挂载详解(mount,umount及开机自动挂载)
挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点& ...
- [转载]Linux基础知识之挂载详解(mount,umount及开机自动挂载)
挂载概念简述: 根文件系统之外的其他文件要想能够被访问,都必须通过"关联"至根文件系统上的某个目录来实现,此关联操作即为"挂载",此目录即为"挂载点& ...
最新文章
- 鹰式价差matlab,震荡市场中的蝶式价差交易
- 小谈 Java 单元测试
- Vysor_v1.6.9
- 机器学习实践:TensorFlow2 多GPU负载不均衡问题
- 网络摄像头实时获取信息
- springMVC从上传的Excel文件中读取数据
- Facebook广告账号主页创建时,其实还有这些小知识!
- 你遇到过最有诗意的句子是什么?
- 关于Excel中的F2键(知道了,会对Excel的操作非常方便)。
- 某台机器上IE8抛“Invalid procedure call or argument”异常
- kepware omronFINS
- ArcGIS Server 发布 REST 服务
- MFC 鼠标画线总结
- 忘记Windows服务器密码怎么办
- 基于51单片机的红外计数器proteus仿真 LCD1602显示原理图程序设计
- Java、两点间距离
- android 9 vxp 闪退,XPrivacyLua限制了权限的应用无法打开
- 【JAVA今法修真】 第四章 redis特性 击穿雪崩
- 微信小程序开发深入解读
- 关于订单支付成功后一些逻辑的处理