Python3 标准库概览
许多初学者可能对 Python3 标准库还不熟悉,因此本文将简要介绍几个常用的库。后续的文章将逐步带领大家了解更多的 Python3 标准库。
1 文件通配符
glob
模块提供了一个函数,用于通过通配符搜索目录,并返回匹配的文件列表:
>>> import glob
>>> glob.glob('*.py')
['primes.py', 'random.py', 'quote.py']
2 命令行参数
学一门编程语言时,输入和输出是一个关键知识点。Python 常见的几种交互方式包括:
- 命令行参数
- 标准输入和输出函数
- 文件输入和输出(涉及文件操作,后续会详细讲解)
- 图形化用户界面(后续也会提及)
①命令行参数
用户可以在命令行中运行 Python 程序时输入参数,并在程序中通过 sys.argv
访问。例如,在命令行中执行 python demo.py one two three
后,sys.argv
的值为 ['demo.py', 'one', 'two', 'three']
。
示例代码:
# __author__ = 帅小柏
import sys
print(sys.argv) # sys.argv 是命令行参数列表。
注意:sys.argv[0]
表示脚本名,其余参数依次类推。
②标准输入输出函数
Python 内置的标准输入输出函数分别是 input()
和 print()
。
input(prompt)
:提示用户输入,并返回用户输入的内容(字符串格式)。print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
:用于打印一行内容。
延伸—标准输入、输出和错误流文件对象
sys
模块有 stdin
, stdout
和 stderr
属性,分别对应标准输入、输出和错误流文件对象。
示例代码:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
import sys
print("hello world")
print("hello world", file=sys.stdout)
sys.stdout.write("hello world")
示例一:stdout 重定向:
# __author__ = 帅小柏
import sys
f = open('out.log', 'w')
sys.stdout = f # 重定向标准输出流文件对象到 out.log 文件
print("hello world!") # 内容输出到文件 out.log 中
注意:即使在 stdout 被重定向时,sys.stderr 仍可用于在终端显示警告和错误信息。
示例二:stdin 重定向:
程序可以从输入流(sys.stdin)中读取数据直至输入流为空。
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
import sys
num = 0.0
for line in sys.stdin:
num += float(line)
print('求和:', num)
重定向 stdin 到文件:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
import sys
f = open('out.log', 'r')
sys.stdin = f # 重定向标准输入流文件对象到 out.log 文件
input_value = input('请输入:') # 从文件读取数据
print(input_value)
示例三:stderr 重定向:
# __author__ = 帅小柏
import sys
f = open('error.log', 'w')
sys.stderr = f
print(1/0) # 主动制造报错,错误信息将输出到 error.log 文件中
恢复标准输入、输出和错误流为默认值:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
import sys
sys.stdin = sys.__stdin__
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
小知识拓展:终止脚本的最直接方法是使用 sys.exit()
。
3 访问互联网
Python 提供了几个模块用于访问互联网和处理网络通信协议,其中最简单的两个库是 urllib
和 requests
。
详解文章链接:
示例代码:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
from urllib.request import urlopen
res = urlopen('http://www.baidu.com/')
print(res.read().decode('utf-8'))
4 日期和时间
datetime
模块提供了处理日期和时间的简单和复杂方法,支持日期和时间算法,并且注重高效的处理和格式化输出。
详解文章链接:Python常用模块之datetime模块
示例代码:
# -*- coding: utf-8 -*-
# __author__ = 帅小柏
from datetime import date
now = date.today()
print(now)
print(now.strftime("%m-%d-%y. %d %b %Y is a %A on the %d day of %B."))
birthday = date(2008, 10, 1)
age = now - birthday
print(age.days)
欢迎通过点击关注公众号【帅小柏】,加入我们的 Python 大家庭,共同学习进步(非诚勿扰)。