使用 Python 子进程模块时如何传递变量

2023-07-21Python开发问题
10

本文介绍了使用 Python 子进程模块时如何传递变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我正在尝试使用 python Subprocess 模块从 python 代码启用/禁用以太网连接.下面是我的代码,其中第一步是寻找可用的以太网连接",下一步根据%interfaces%"中传递的参数启用/禁用以太网连接.

I'm trying to use python Subprocess module to enable/disable Ethernet connection from python code. Below is my code in which the first step is looking for the available "Ethernet Connections" and the next step enables/disables the ethernet connection according to the parameter passed in "%interfaces%".

for /f "skip=2 tokens=3*" %%A in ('netsh interface show interface') do set interface=%%B

netsh interface set interface %interface%  ENABLED

现在在 python 中使用时,我无法传递变量,但不确定它是否可能.仅传递如下命令按预期工作:

Now when using in python I couldn't pass the variable, not sure if it's even possible though. Passing only command as below works as expected:

import subprocess
subprocess.call('netsh interface set interface Ethernet10 ENABLED')

我想做这样的事情:

import subprocess
subprocess.call (set x = 'Ethernet0')
subprocess.call('netsh interface set interface x  ENABLED')

推荐答案

subprocess.call 将列表作为参数:

subprocess.call(['netsh', 'interface', 'set', 'interface', x, 'ENABLED'])

您可以改为传递 shell=True 并且您的字符串会起作用,但这是一个安全风险,因为例如用户可以通过使用 $(command_here)

You could instead pass shell=True and your string would work, but it is a security risk, since an user could for example call another command by using $(command_here)

如果你仍然想使用字符串,你可以使用 shlex.split.

If you still want to use a string, you could use shlex.split.

这篇关于使用 Python 子进程模块时如何传递变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

pandas 有从特定日期开始的按月分组的方式吗?
Is there a way of group by month in Pandas starting at specific day number?( pandas 有从特定日期开始的按月分组的方式吗?)...
2024-08-22 Python开发问题
10

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10