Linux基础使用2-结合python使用

添加命令行参数运行python文件

通过import sys导入python 标准库中的 sys.py 模块,sys.argv 包含命令行参数的列表。通过循环获取sys.argv 中的参数。

特别注意:sys.argv[0]为代码本身。

for i in sys.argv:
print(i)

实操1:打印命令行参数

控制台输入:

cd dongyu #你的文件路径
vim test5.py
#输入test5.py文件内容
python3 test5.py 参数1 参数2

test5.py文件内容如下:

#!usr/bin/python3
import sys
for i in sys.argv:
print(i)

结果:

test5.py #sys.argv[0]
参数1
参数2

实操2:使用os模块打印/usr/bin/路径下所有以m开头的文件

控制台输入:

cd dongyu #你的文件路径
vim test5.py
#输入test5.py文件内容
python3 test5.py

修改test5.py文件内容如下:

#!usr/bin/python3
import os
filelist=os.listdir('/usr/bin/')
import re
for f in filelist:
if re.match(r'm',f,re.M|re.I):
print(f)

结果:

[coggle@i-7lo31rsr dongyu]$ python3 test6.py
mtr
mk_modmap
mtr-packet
mountpoint
manpath
make-first-existing-target
man
mlocate
manifest
mesg
migrate-pubring-from-classic-gpg
...#省略

创建py目录,并进行import导入

实操:test6.py可以进行命令行解析,输出affairs.txt具体的第几行内容

控制台输入:

cd dongyu #你的文件路径
vim affairs/affairs.py
#输入affairs/affairs.py文件内容
vim test6.py
#输入test6.py文件内容
python3 test6.py 10 11

affairs.py文件内容如下:

import pandas as pd
data=pd.read_csv('./affairs.txt')
def printdata(index):
try:
index=int(index)
except:
print('index:error!',index)
return
if index < len(data):
print(index,data.iloc[index])

test6.py文件内容如下:

import sys
import affairs.affairs as af
for i in sys.argv[1:]:
print(af.printdata(i))

结果:

10 rate_marriage     3.0
age 22.0
yrs_married 2.5
children 0.0
religious 2.0
affairs 1.0
Name: 10, dtype: float64
None
11 rate_marriage 3.0
age 27.0
yrs_married 6.0
children 0.0
religious 1.0
affairs 1.0
Name: 11, dtype: float64
None