os.system如何传参

今天写脚本的时候,正好希望在python脚本中调用另外一个python脚本,就使用了os.system来实现这个功能(当然,还有很多的办法,而且每种方法满足的需求不都一样,有兴趣的读者可以谷歌下)。

但是我需要给这个调用里面传入一个参数,网上查了半天,感觉都不太清晰,就写了这篇,简单介绍下。

os.system的定义是这样的

os.system("shell command argusFormat" % argus)

在双引号里面正常写命令,需要用到参数的地方,使用%s等格式代替,然后在双引号的后面加空格,加%号,然后在括号里写入所有的参数,用逗号隔开。

单个参数
param = 'I'm param'
os.system("python haha.py %s" % (param))
多个参数
paramA = 'I'm paramA'
paramB = 'I'm paramB'
os.system("python haha.py %s %s" % (paramA,paramB))

需要注意的是,shell中对于空格的要求特别严格,一定要注意别多或者少(写js的来写shell真的好难受0_0)。

python格式化

这里是参数的字符格式化,供大家参考

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

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

%c    单个字符

%b    二进制整数

%d    十进制整数

%i    十进制整数

%o    八进制整数

%x    十六进制整数

%e    指数 (基底写为e)

%E    指数 (基底写为E)

%f    浮点数

%F    浮点数,与上相同

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

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


%%    字符"%"
在Java中,发送POST请求并传递参数通常涉及到HTTP客户端库的使用,比如`HttpURLConnection`、`Apache HttpClient`或者第三方库如`Spring RestTemplate`。如果你想要通过`HttpURLConnection`发送POST请求并携带参数,可以按照以下步骤操作: ```java import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public void sendPostRequest(String url, String params) throws Exception { URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); // 设置连接为POST请求 con.setRequestMethod("POST"); con.setDoOutput(true); // 指示有数据需要输出 // 将参数转换为字节数组 byte[] postDataBytes = params.getBytes("UTF-8"); // 获取输出流 OutputStream os = con.getOutputStream(); // 写入数据到连接 os.write(postDataBytes); // 关闭输入流 os.flush(); os.close(); // 获取响应状态码 int responseCode = con.getResponseCode(); System.out.println("Response Code : " + responseCode); // 读取响应数据(这里仅作为示例,实际应用中应处理响应) BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println(response.toString()); } ``` 在这个例子中,`params`参数是你想要发送的键值对,格式通常是`key1=value1&key2=value2`。记得替换URL为你实际的API地址。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值