python sys库作用_荐python sys库

python sys库

argv

sys库下有一个名为argv的列表,该列表保存了所有的命令行参数。argv列表中的第一个元素是命令行程序的名称,其余的命令行参数以字符串的形式保存在该列表中。

# 程序名test.py

from __future__ import print_function

import sys

print(sys.argv)

#执行命令

python test.py localhost 3306

['dddddd.py', 'localhost', '3306']

import sys

import os

def main():

# sys.argv.append(" ")

filename = sys.argv[0]

print(filename)

#D:/project/bianzu/sys_test.py

print("打印参数列表:",sys.argv)

#['D:/project/bianzu/sys_test.py']

if not os.path.isfile(filename):

raise SystemExit(filename + ' does not exists')

elif not os.access(filename,os.R_OK):

raise SystemExit(filename + ' is not accessible')

else:

print(filename + " is accessible")

if __name__ == '__main__':

main()

sys文件描述符

sys库中有三个文件描述符,分别是stdin、stdout和stderr,这三个文件描述符分表代表着标准输入、标准输出和错误输出。

读取标准输入:sys.stdin

sys.stdin从标准输入中读取内容,然后打印到命令行终端

import sys

for line in sys.stdin:

# end= "" 不换行

print(line,end=" ")

sys.stdin.readlines函数将标准输入的内容读取到一个列表中

import sys

def get_content():

return sys.stdin.readlines()

print(get_content())

多文件处理fileinput

fileinput是python语言的标准库,提供了比sys.stdin更加通用的功能,使用fileinput可以依次读取命令行参数中给出的多个文件。fileinput会遍历sys.argv[1:]列表,并按行一次读取列表中的文件。如果该列表为空,则fileinput默认读取标准输入中的内容

import fileinput

for line in fileinput.input():

print(line,end="")

filename可以读取多个文件的内容,同时提供一些方法让我们知道当前所读取的内容属于哪一个文件

filename: 当前正在读取的文件名

fileno: 文件的描述符

filelineno: 正则读取的行是当前文件的第几行

isfirstline:正则读取的文件是否当前文件的第一行;

isstdin fileinput: 正则读取文件还是直接从标准输入读取内容

import fileinput

for line in fileinput.input():

meta = [fileinput.filename(),fileinput.fileno(),fileinput.filelineno(),fileinput.isfirstline(),fileinput.isstdin()]

print(*meta)

#依次是文件名 文件描述符 文件第几行 是否是第一行 是否从标准输入读取

#D:\tmp\test2.txt 3 1 True False

#hi,happy everyday

#

print(line)

标准输出:sys.stdout

sys.stdout与sys.stderr向标准输出和错误输出中输出内容,默认情况向“hello" 和”world"都会被输出到命令行,可以通过重定向来将"hello"输出到标准输出,“world"被输出到错误输出

import sys

sys.stdout.write("hello")

sys.stderr.write('world')

Python程序执行失败,需要在标准错误中输出错误信息,然后以非零的返回码退出程序

import sys

sys.stderr.write('error message')

sys.exit(1)

示例:

import sys

import os

def main():

filename = sys.argv[1]

print(filename)

#判断文件是否存在,不存在直接退出

if not os.path.isfile(filename):

raise SystemExit(filename + ' does not exists')

# 判断文件是否具有读权限

elif not os.access(filename,os.R_OK):

os.chmod(filename, 777)

else:

with open(filename) as f:

print(f.read())

if __name__ == "__main__":

main()

原文链接:https://blog.csdn.net/zhengzaifeidelushang/article/details/106273567

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值