一、 命令行构建
- 标准输入输出(sys类)
import sys
print(sys.argv) # sys.argv 是列表名
print(sys.argv[2])
# 调用
[in]>>python3 test.py localhost 3360
[out]>>[‘test.py’,’localhost’,’3360’]
[out]>>3360
import sys
for line in sys.stdin:
print(line,end = “”)
[in]>>cat /etc/passwd | python3 test.py
[in]>>python3 test.py < /etc/passwd
sys.stdout.write(“hello”) # 标准输出,直接输出到屏幕上
# 方法一:伴随exit一块,可以用重定向输出到其他位置
sys.stderr.write(“error message”)
sys.exit(1) # 常规退出
# 方法2:同上两句,但是程序崩溃,抛出字符串
raise SystemExit(“error message”)
- 读取文件输入(fileinput类)
import fileinput
for line in fileinput.input(): # 如果是多个文件,都会被打包到一起,一块读入内存
if fileinput.filelineno() == 3: # 这条可判断当前操作文件任意行int
print("当前文件名",fileinput.filename()) # 当前操作文件名str
print("当前行内容:",line)
import fileinput
import sys
# 此for循环里的stdout输出都会被替换到文件里,包括空
for line in fileinput.input(inplace = True): # 修改开关inplace
if fileinput.isfirstline(): # 这条判断是否是当前操作文件第一行
line = "=>" + line # 修改line的值
sys.stdout.write(line) # 构造stdout输出
[in]>>cat /root/e1 | python3 test.py
[in]>>python3 test.py < /root/e1
[in]>>python3 test.py /root/e1 /root/e2 # 这个是针对多个文件进行批处理操作
网友评论