export是linux系统下的指令,在window系统下不能使用,很不方便,本文复现了一下export的功能。

问题描述:

'export' 不是内部或外部命令

新建exporttest.py,代码如下:

import argparse
import sys
from pathlib import Path

parser = argparse.ArgumentParser()
parser.add_argument("--path", type=str, default="")
parser.add_argument("--deletepath", type=str, default="")
args = parser.parse_args()

# sys.path.append(r'newlib_path')

if __name__ == '__main__':

    exportpath = eval(repr(args.path).replace('\\', '\\\\'))
    exportpathlist=exportpath.split('AND')
    # print(pathlist)
    # print(sys.executable)

    deletepath = eval(repr(args.deletepath).replace('\\', '\\\\'))
    deletepathlist = deletepath.split('AND')

    filepath=sys.prefix+'\Lib\site-packages\myExportPath.pth'
    file = Path(filepath)

    if not file.exists():
        # print("File doesn't exist, this code will first create one and then add the paths!!!")
        with file.open('w') as f:
            for path in exportpathlist:
                f.write(path)
                f.write("\n")
        existingPaths = file.read_text()
        existingPathslist = filter(None, existingPaths.split('\n'))
        with file.open('w') as f:  # 创建并写入。
            for existingPath in existingPathslist:
                deleteFlag=False
                for path in deletepathlist:
                    if existingPath == path:
                        deleteFlag=True
                        break
                if deleteFlag==False:
                    f.write(existingPath)
                    f.write("\n")
        existingPaths = file.read_text()
        print("The export paths are: \n"+existingPaths)
    else:
        # print("The file exists, this code will add the paths to the existing file!!!")
        existingPaths=file.read_text()
        existingPathslist = filter(None,existingPaths.split('\n'))
        with file.open('a') as f:
            for path in exportpathlist:
                existingFlag=False
                for existingPath in existingPathslist:
                    if existingPath == path:
                        existingFlag=True
                        print("warning: the path "+path+" already exists")
                        break
                if existingFlag==False:
                    f.write(path)
                    f.write("\n")
        existingPaths = file.read_text()
        existingPathslist = filter(None, existingPaths.split('\n'))
        with file.open('w') as f:
            for existingPath in existingPathslist:
                deleteFlag = False
                for path in deletepathlist:
                    if existingPath == path:
                        deleteFlag = True
                        break
                if deleteFlag == False:
                    f.write(existingPath)
                    f.write("\n")
        existingPaths = file.read_text()
        print("The export paths are: \n" + existingPaths)
    # print(sys.path)

使用方法如下:

1、添加一条path

指令:

python exporttest.py --path XXXX  #XXXX为你需要export的路径

示例: 

2、 添加多条path,path中间用AND连接

指令:

python exporttest.py --path XXXXANDXXXX    #XXXX为你需要export的路径

示例: 

3、查看已经添加的path

指令:

python exporttest.py

示例: 

 

4、删除一条path

 指令:

python exporttest.py --deletepath XXXX  #XXXX为你需要删除的路径

示例:

5、删除多条path,同2,中间用AND连接