python文件调用文件_Python脚本随笔-py文件间的调用

脚本运行过程中可能由某个py文件调用另一个py文件,不同于import,调用py文件相当于直接去执行另一个py文件

py文件的调用需要使用sys库和os库

调用并传参数:调用py文件可以使用os.system(file)语句,file为被调用py文件的绝对路径,os.system语句规则如下:

os.system格式为os.system(command % (%s,%i ...))

command 为字符串格式的命令语句,如果需要传递参数,以%s或%i等取代

具体参数如下:

%s    字符串 (采用str()的显示)

%r    字符串 (采用repr()的显示)

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

%g    指数(e)或浮点数 (根据显示长度)

%G    指数(E)或浮点数 (根据显示长度)

%后面的括号中依次输入对应参数内容

os.system举例:

defrun_parser():

rootdir= os.path.join(os.getcwd(),"scripts/enum_parser.py")

rootdir+= "%s %s"os.system(rootdir%("input_table_define","output_lua_server"))

被调用端读取参数:通过sys.argv[]接受参数

此处sys.argv[0]表示代码本身文件路径,不是传递的参数,参数从[1]开始

传递过程中不能传“”空字符串,空字符串不会被传递,需要传“”空字符串时应假定一个特殊字符串传递,在接收端检测到目标字符串时将变量置空

被调用端读取参数举例:

#参数初始化

canshu1 = ""canshu2= ""output= ""

if(len(sys.argv) >3):

output= sys.argv[3]if output == "NoVal":

output== ""

if(len(sys.argv) >2):

canshu2= sys.argv[2]if canshu2 == "NoVal":

canshu2== ""

if(len(sys.argv) >1):

canshu1= sys.argv[1]if canshu1 == "NoVal":

canshu1== ""

首先默认置空,之后判断是否传入了足够的参数防止报错,最后读取参数

文件调用实用测试方法:

os.system语句的返回值可用来判断该语句是否被正确执行,在脚本间相互调用时为每个脚本写print语句很麻烦,利用返回值是否为0可判断是否正确执行

测试方法举例:

re = os.system(rootdir %(p1,p2,p3))if not re ==0:print("fail call")

os.system("pause")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值