random模块
生成随机模块,也是一个内置模块
# 随机小数:
print(random.random()) # 0.7664338 大于0且小于1之间的小数
print(random.uniform(1,3)) # 1.62701 大于1小于3的小数
# 随机整数:
print(random.randint(1,5)) # 大于等于1且小于等于5之间的整数
print(random.randrange(1,10,2)) # 大于等于1且小于10之间的奇数
# 随机返回:
random.choice([1,'23',[4,5]]) #1或者23或者[4,5]
random.sample([1,'23',[4,5]],2) # 列表元素任意2个组合 [[4, 5], '23']
# 打乱列表顺序:
random.shuffle( ) # 打乱次序
item=[1,3,5,7,9]
random.shuffle(item)
print(item) # [5, 1, 3, 7, 9]
"""不要赋值,是列表,打乱顺序的还是原值"""
练习:生成随机订单号
import random
import time
def outer(n=18):
new_order = 'SF'+ time.strftime('%Y%m%d%H%M%S') # 加上时间戳年月日时分秒
for i in range(n):
some_number = str(random.randint(0,9)) # 整数0-9
some_upper_word = chr(random.randint(65,90)) # 大写字母
some_litter_word = chr(random.randint(97,122)) # 小写字母
all_number = random.choice([some_number,some_upper_word,some_litter_word])
#随机取一个
new_order += all_number # 订单号拼一起
return new_order
print(outer())
os模块
os模块是与操作系统交互的一个接口
# 生成目录,创文件夹
os.mkdir('myfirst') 生成单级目录,创文件夹
os.makedirs('myfirst/mysecond/mythird') 可生成多层递归目录
# 删目录,删文件夹
os.rmdir('dirname') 删除单级空目录
os.removedirs('dirname1') 若目录为空,则删除,并递归删除
# 查看文件夹子目录
os.listdir('dirname') 列出子目录,包括隐藏文件,并以列表方式打印
# 文件的相关操作(.text)
os.remove(r'路径') 删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.stat('path/filename') 获取文件/目录信息
# 运行命令
os.system("tasklist") 运行shell命令,直接显示
os.popen("tasklist").read() 运行shell命令,需要print才能调用结果
os.getcwd() 获取当前工作路径
os.chdir("dirname") 改变当前路径
import os
res = os.getcwd() # 路径day27
os.chdir(r'路径bbb')
res1 = osos.getcwd()
print(res1) # 路径bbb

# 路径相关 os.path
os.path.abspath(path) 返回path规范化的绝对路径
os.path.dirname(path) 返回path的目录,往上查找路径
res = os.path.dirname(os.path.dirname(os.path.dirname(r'D:\Python27\day22\code\aaa')))
print(res) # 'D:\Python27'
os.path.basename(path) 返回path最后的文件名
res = os.path.basename(r'D:\Python27\day23\bbb\3.txt')
print(res) # 3.txt
os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
if not os.path.isabs(path):
os.mkdir(path) # 如果不存在,创建
os.path.isfile(path) 判断path是否是文件,True\False
os.path.isdir(path) 判断path是否是文件夹,True\False
os.path.join(路径,路径) 拼接路径
base_dir = '路径'
path = base_dir + '\\' + 'bbb' + '\\' + 'aaa'
print(path)
os.path.join(base_dir, 'bbb', 'aaa')
os.path.getatime(path) 返回最后访问时间
os.path.getmtime(path) 返回最后修改时间
os.path.getsize(path) 返回path的大小,字节为单位,可以判断是否为空
# os模块属性
os.sep 输出操作系统特定的路径分隔符
path = base_dir + '\\' + 'bbb' + '\\' + 'aaa'
path = base_dir + os.sep + 'bbb' + os.sep + 'aaa'
os.linesep 输出当前平台使用的行终止符,win下为"\r\n",Linux下为"\n"
os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:
'路径' + os.pathsep + '路径' + os.pathsep + '路径'
os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'

练习:查看视频
"""
1. 仓老师.mp4
2. 李老师.mp4
3. 小文老师.mp4
4. 何老师.mp4
"""import os
# print(__file__) # D:/Python27/day23/03 播放小视频练习.py
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
data_movie_list_path=os.path.join(BASE_DIR, '小视频') #
data_movie_list=os.listdir(r'%s' % data_movie_list_path)
print(data_movie_list) # ['仓老师.mp4', '李老师.mp4', '小文老师.mp4', '何老师.mp4']
while True:
for i, j in enumerate(data_movie_list):
print(i + 1, j)
choice = input('请输入你想看的视频序号:').strip()
# 1. 判断输入的内容必须是数字
if choice.isdigit():
# 2. 输入的数字范围必须是文件的个数
# 1 2 3 4 5 6
choice = int(choice)
if choice in range(1, len(data_movie_list)+1):
# 3. 拼接成: D:\Python27\day23\视频\仓老师.mp4
video_file_path=os.path.join(data_movie_list_path, data_movie_list[choice-1])
print(video_file_path)
# 4. 播放:读取文件
with open(video_file_path, 'r', encoding='utf-8') as f:
print(f.read())
sys模块
sys模块是与python解释器交互的一个接口
sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
sys.version 获取Python解释程序的版本信息
if sys version < '2.7':
print('当前版本过低,请更新')
sys.path 返回模块的搜索路径
sys.platform 返回操作系统平台名称
sys.argv 命令行参数List,第一个元素是程序本身路径
import sys
print(sys.argv)
# '\Python27\day22\bbb.py' kevin 123
try:
username = sys.argv[1]
password = sys.argv[2]
except Exception as e:
print('参数异常')
print(username)
print(password)