在Shell脚本文件中 运行的 Python脚本,如何将参数”ABCEFG“传递到 python 脚本中运行,使用 import sys 接收参数
时间: 2024-11-05 21:28:47 浏览: 29
在Shell脚本中运行Python脚本并传递参数,你需要确保你的shell支持这种交互。通常,在bash shell中,你可以通过以下步骤完成:
1. 首先,创建一个Python脚本,假设其名为`example.py`,内容如下:
```python
# example.py
import sys
if __name__ == "__main__":
args = sys.argv[1:] # 切除第一个元素(脚本名称),剩下的就是参数
print(f"接收到的参数是:{args}")
```
在这个例子中,我们检查了主模块是否被直接执行(不是作为模块导入),然后从`sys.argv`获取所有的参数。
2. 在Shell脚本中,你可以这样调用Python脚本并传递参数`ABCEFG`:
```bash
# shell_script.sh
# 将ABCEFG替换为你想要传递的实际参数
python example.py ABCEFG
```
当你运行`shell_script.sh`时,`example.py ABCEFG`将会被执行,`ABCEFG`就会被传递给Python脚本。
当你运行上述`shell_script.sh`时,`example.py`会接收到`['ABCEFG']`作为参数。
相关问题
shell脚本之关系运算符
关系运算符是用于比较两个值之间关系的运算符,包括等于、不等于、大于、小于、大于等于和小于等于。在Shell脚本中,关系运算符主要用于比较数字和字符串。
以下是几个常用的关系运算符及其含义:
- -eq:等于,例如:if [ $a -eq $b ]
- -ne:不等于,例如:if [ $a -ne $b ]
- -gt:大于,例如:if [ $a -gt $b ]
- -lt:小于,例如:if [ $a -lt $b ]
- -ge:大于等于,例如:if [ $a -ge $b ]
- -le:小于等于,例如:if [ $a -le $b ]
其中,$a和$b为需要比较的值。
以下是一个比较数字大小的例子:
```shell
a=10
b=20
if [ $a -eq $b ]
then
echo "a 等于 b"
else
echo "a 不等于 b"
fi
```
输出结果为:a 不等于 b
以下是一个比较字符串大小的例子:
```shell
a="abc"
b="efg"
if [ $a = $b ]
then
echo "$a = $b : a 等于 b"
else
echo "$a = $b: a 不等于 b"
fi
```
输出结果为:abc = efg: a 不等于 b
python中怎么将列表中的数据只保留数字部分
可以使用正则表达式来过滤出列表中的数字部分:
```python
import re
my_list = ['abc123', '456efg', 'hi789jk']
result = []
for item in my_list:
numbers = re.findall(r'\d+', item)
for num in numbers:
result.append(int(num))
print(result)
```
输出:
```
[123, 456, 789]
```
解释:
首先导入正则表达式模块 `re`,然后定义一个列表 `my_list`。接着,我们创建一个空列表 `result`,用来存储过滤出的数字。
在循环中,我们使用 `re.findall()` 函数来匹配每个字符串中的数字部分。这个函数会返回一个列表,包含所有匹配到的数字。然后,我们遍历这个列表,将每个数字转换为整数,并加入到 `result` 列表中。
最后,我们得到了一个只包含数字的列表 `result`。
阅读全文