Python学习笔记:3.3.1 os与sys模块

本文是学习齐老师的《python全栈工程师》课程的笔记,欢迎学习交流。同时感谢齐老师的精彩传授!

一、课程目标
  • 了解标准库的os模块的应用
  • 了解标准库的sys模块的应用
二、详情解读

Python标准库

  • Python标准库非常庞大,所提供的组件涉及范围十分广泛。
    – 多个内置模块(以 C 编写),依靠它们来实现系统级功能,例如文件 I/O。
    – 大量以Python编写的模块,提供了日常编程中许多问题的标准解决方案。
    – python标准库官方文档:https://docs.python.org/zh-ch/3/library/index.html
  • 第三方包:标准库以外还存在成千上万并且不断增加的其他组件(从单独的程序、模块、软件包直到完事的应用开发框架)。

01.OS模块: os模块提供了一种使用与操作系统相关的功能的便捷式途径。
os模块官方文档:https://docs.python.org/zh-cn/3/library/os.html

  • 常用函数举例:
    – rename():对文件重命名
    – listdir():列出目录下的所有目录和文件
    – remove():删除文件
    – getcwd():获取当前工作目录
    – chdir():改变路径到指定目录
    – makedir():创建目录
    – removedirs():删除目录(必须保证该目录为空)
    – system():

02.sys模块: sys模块提供了一些与Python解释器响应的函数。
sys官方文档:https://docs.python.org/zh-cn/3/library/sys.html

  • 常用函数举例:
    – argv():获取命令行传递的参数
    – exit():退出当前程序
    – path():显示所有模块的搜索路径
    – stdout():标准化输出
    – stdin():标准化输入
# py_sys.py内容如下:
import sys
print('file name:', sys.argv[0])
print('length of argument.', len(sys.argv))
print('arguments are: ', str(sys.argv))

# 在终端运行 py_sys.py文件, python py_sys.py ,会打印如下内容:
file name: py_sys.py
length of argument. 1
arguments are: ['py_sys.py']

应用举例:

'''
以命令行参数的形式向某程序文件提供数值,实现两个数值相加。
'''
import sys
lam = lambda x, y: x + y

x = float(sys.argv[1])
y = float(sys.argv[2])
print('x + y = ', lam(x, y))

# exit()举例
n = 10
while n > 10:
	n -= 1
	if n == 5:
		sys.exit()
	else:
		print(n)

#  print()
class Redirct:
	def __init__(self, stdout):
		self.stdout = stdout
	def write(self, s):
		self.stdout.write(s.lower()) # 此处覆盖了sys模块里的标准化输出
old_stdout = sys.stdout
sys.stdout = Redirect(sys.stdout)  # sys模块中的stdout被覆盖了,下面的语句打印出 learn python with laoqi
print('LEARN PYTHON WITH LAOQI')
sys.stdout = old_stdout # 将sys模块的stdout还原,下面的语句打出原始数据 YOU RAISE ME UP
print('YOU RAISE ME UP')

# stdin举例
while True:
	try:
		# reading from sys.stdin (stop with Ctrl-D)
		number = input('Enter a number:')
		# number = sys.stdin.realine()[:-1]
	except EOFError:
		print('\nEND')
		break
	else:
		try:
			number = int(number)
			if number == 0:
				print('0 has no inverse')
			else:
				print('inverse of {0} is {1}'.format(number, 1.0/number))
		except ValueError:
			print('\nEnd')
			break
三、课程小结
  • 学习了os模块
  • 学习了sys模块

你可能感兴趣的:(Python全栈工程师学习笔记,python中os与sys模块)