1. python文件调用另一个python文件,并获取文件中的输出值
主要实现两个
1.B文件获取C文件中的输出结果
2.用C文件使用argparse获取命令行参数
如下两个文件
processB.py
import os
import sys
command = 'python processC.py --ip=172.18.18.18 --flag=dv --log=True'
# 执行命令
f = os.popen(command)
# 获取processC.py文件中的输出
results = f.readlines()
# 打印结果
for res in results:
sys.stdout.write(res)
sys.stdout.flush()
# 关闭流
f.close()
processC.py
import sys
import argparse
# 打印所有参数
def show_argv():
print(sys.argv)
# 带有名字的参数
def get_args():
parser = argparse.ArgumentParser(usage="prop tip",description="help info")
parser.add_argument("--ip",default='172.18.18.152',help="ip")
parser.add_argument("--flag",choices=['dev','prod'],default='prod',help='environment')
parser.add_argument("--log",default=False, help='environment')
parser.add_argument("--port", help='port')
return parser.parse_args()
if __name__ == '__main__':
args = get_args()
print(args)
show_argv()
打印结果
在processC文件中,可以直接通过args.flag获取结果(去掉–)
2. 判断文件、目录是否存在
import os
# 路径可以为相对路径也可以为绝对路径
# 相对路径上一级为 ../xxx
# 相对同级为 xxx 或者 ./xxx
path = /root/config.json
# 判断文件、目录是否存在
os.path.exists(path) # True
# 判断该路径是否为文件
os.path.isfile(path) # True
# 判断该路径是否为目录
os.path.isdir(path) # False
3. 创建目录
# 创建多级目录,即使某层目录没有也可以建出来
os.makedirs('/test/test/test')
# 创建单层目录
os.mkdir('/test')
4. 获取目录下的文件、文件夹
# 获取当前文件路径
path = os.getcwd() # /home
# 如果目录名字为中文 需要转码处理
path = unicode(path ,'utf-8')
# 获取某路径下这一层的所有文件或目录名称 注意:是名称,不是路径
for fileOrDir in os.listdir(path):
print(fileOrDir)
5. 获取运行时间
start = timeit.default_timer()
run()
end = timeit.default_timer()
print('Running time: %s Minutes' % ((end - start)/60.0))