⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 convertpath.py

📁 无线通信的主要编程软件,是无线通信工作人员的必备工具,关天相关教程我会在后续传上.
💻 PY
字号:
#!/usr/bin/env pythonimport string, os, re, sysdef usage() :    print """USAGE: ./convertPath.py -w|-u [PATH|-v [VAR_NAME]]Convert path-type environmental variables to/from cygwin unix form(eg, /bin:/usr/bin:/cygdrive/c/cygwin/sbin ) from/to equivalentsin windows form (ie, C:\cygwin\bin;C:\cygwin\usr\bin;C:\cygwin\sbin )-w          :  convert to windows format-u          :  convert to unix formatPATH        :  the path string to be converted (eg, /bin:/sbin)-v VAR_NAME :  name of the variable (w/o $ or %...%) to convert, if               no name is specified, PATH is assumed."""# variable value to be converteddef getVarValue( varName ) :    try:        varValue = os.environ[ varName ]    except:        print "Cannot access the %s variable" % varName        sys.exit(1)    return varValue# check number of input argsif (len(sys.argv) < 2) or (len(sys.argv) > 4) :    usage()    sys.exit(1)# variable name to be convertedargList = sys.argv[1:]if ( len(argList) == 2 ) and ( "-v" in argList ) :    argList.remove( "-v" )    convertTo = argList[0]    varValue = getVarValue( "PATH" )elif ( len(argList) == 2 ) :    convertTo = argList[0]    varValue = argList[1]elif len(argList) == 3 :    varName = argList[2]    argList = argList[:-1]    if "-v" in argList :        argList.remove( "-v" )    else :        usage()        sys.exit(1)    convertTo = argList[0]    varValue = getVarValue( varName )else :    usage()    sys.exit(1)# find cygwin's root in windowscygRoot = os.popen( "cygpath -w /" ).read()[:-1]# which form to convert to? # --------------------------------------------------# convert to windows format# --------------------------------------------------if convertTo == "-w" :    pathList = re.split( ":" , varValue )    newPathStr = ""    for path in pathList :        path = re.sub( "^\s" , "" , path )        path = re.sub( "\s$" , "" , path )        regResults = re.search( "^((?P<dot>\.)|(/cygdrive/(?P<drive>[a-zA-Z])))?/(?P<rem>.*)$" , path )        if regResults:            dot = regResults.group("dot")            drive = regResults.group("drive")            rem = regResults.group("rem")            if drive :                prefix = "%s:\\" % drive            elif dot :                prefix = ".\\"            else :                prefix = "%s\\" % cygRoot            newPath = prefix + re.sub( r"/" , r"\\" , rem )            newPathStr += newPath + ";"    newPathStr = newPathStr[:-1]# --------------------------------------------------# convert to unix format# --------------------------------------------------elif convertTo == "-u" :    pathList = re.split( ";" , varValue )    newPathStr = ""    for path in pathList :        path = re.sub( "^\s" , "" , path )        path = re.sub( "\s$" , "" , path )        regStr = r"^((?P<dot>\.)|(?P<cygr>%s)|((?P<drive>[a-z]):))\\(?P<rem>.*)$" % re.sub( r"\\" , r"\\\\" , cygRoot )        regResults = re.search( regStr , path , re.I )        if regResults:            dot = regResults.group("dot")            cygr = regResults.group("cygr")            drive = regResults.group("drive")            rem = regResults.group("rem")            if cygr :                prefix = "/"            elif dot :                prefix = "./"            else :                prefix = "/cygdrive/%s/" % drive            newPath = prefix + re.sub( r"\\" , r"/" , rem )            newPathStr += newPath + ":"    newPathStr = newPathStr[:-1]else :    usage()    sys.exit(1)print newPathStr

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -