- 解决在cmd交互模式下输入python进入的确是app store的问题
是由于windows系统的控制面板找到环境配置中路径path里”%USERPROFILE%\AppData\Local\Microsoft\WindowsApps“这样一条。应直接删掉。如果path里根本没有python的路径,则需要手动找到并添加
python的文件file操作
先open 再write或read,最后close
seek() 设置文件指针的位置。seek(0) 指开头 seek(0,2)指末尾
writelines() 写入容器类型数据 字典只写入键
read() 读 fp.readline() 读一行 ;fp.readline(size) 一次读取一行中指定长度
readlines() 读取所有行 fp.readlines(6) 按照行进行读取,可以设置读取的字节数,设置的字节数不足一行按一行算
truncate() 截断文件内容 fp.truncate(5) 截断5个字节 size如果为0,则从当前位置截断到最后
with open(文件路径,打开模式) as 变量:
变量.操作()
with open('./1.txt','r+',encoding='utf-8') as fp:
res = fp.read()
print(res)
打开模式:
w w模式 write 写入模式
1。 文件如果不存在,则创建这个文件
2。 文件如果存在,则打开这个文件,并且清空文件内容
3。 文件打开后,文件的指针在文件的最前面
r r模式: read 读取模式
1。 如果文件不存在,则报错
2。 文件如果存在,则打开文件
3。 文件指针在文件的最前面
x x模式: xor 异或模式
1。文件不存在,则创建这个文件
2。文件已存在,则报错(防止覆盖)
3。文件的指针在文件的最前面
a a模式: append 追加模式
1。文件不存在,则创建文件
2。文件如果存在,则打开文件 (和w模式的区别在于。a模式打开文件后不会清空)
3。文件指针在当前文件的最后
#二,扩展模式:
b b模式 bytes 二进制
+ +模式 plus 增强模式(可读可写)
#三,文件操作模式的组合:
w,r,a,x
wb,rb,ab,xb,
w+,r+,a+,x+
wb+,rb+,ab+,xb+
内置模块
序列化与反序列化
- 二进制序列化模块 pickle (python专用)
pickle.dumps(var)序列化 返回一个序列化后的二进制数据
pickle.dumps(var)反序列化
pickle.dump(var,fp)把一个数据对象进行序列化并写入到文件中
pickle.load(fp)在一个文件中读取序列化的数据,并且完成一个反序列化
- 文本序列化模块 json (互联网通用)
json 和字典的定义规则和语法很像 ,是一种通用的数据交换,数据传输,数据定义的一种数据格式
json.dumps() 完成json格式数据的序列化
json.loads() 完成json格式数据的反序列化
json.dump() 和pickle模块的dump方法一样
json.load() 和pickle模块的load方法一样
// data.json
// 以下三种格式都属于json格式化数据
{'name':'admin','age':20,'sex':'男'} # 1
[1,2,3] # 2
# 3
[
{'name':'admin','age':20,'sex':'男'},
{'name':'aa','age':21,'sex':'m'}
]
以下两个不能转成json
vardict = 'abcdef' # 只是转为了字符串而已,
vardict = 521 # 只是转为了数字而且
数学模块math
随机模块random
random.random() 返回 0 - 1 之间的随机小数 (左闭右开)
random.randrange([开始值],结束值,[步进值]) 随机获取指定范围内的整数
random.randint() 随机产生指定范围内的随机整数
random.uniform() 获取指定返回内的随机小数
random.choice() 随机获取容器类型中的值 eg. res = random.choice('123') random.shuffle() 随机打乱当前列表中的值,没有返回值,直接打乱原数据
os操作系统模块
os.getcwd() 获取当前的工作目录,注意获取的不是当前脚本的目录
os.chdir('/Users/yc/')修改当前的工作目录
os.listdir() 获取当前或指定目录中的所有项(文件,文件夹,隐藏文件),组成的列表
os.mkdir(文件夹路径,权限) 创建文件夹 eg. os.mkdir('aa',0o777) # 默认在工作目录创建一个人文件夹
os.makedirs() 可以递归创建文件夹 os.makedirs('/users/yc/Desktop/code/abc/a/b/c/')
os.rmdir() 删除 空 文件夹 os.removedirs() 递归删除空文件夹
os.remove() 删除文件 os.rename() 修改文件或文件夹的名字
os.system() 执行操作系统中的命令 eg os.system('ls')
- os.path 路径模块 可以对路径进行操作 相对绝对路径检转化,拆分,检测文件(夹)是否存在
- shutil 高级操作模块 复制文件 删除文件,移动文件
- zipfile 压缩模块 压缩解压缩
时间模块time
概念:
时间戳: 1574905882.6581771 表示从1970年1月1日0时0分0秒到现在的一个秒数,目前可以计算到2038年
时间字符串: Thu Nov 28 09:54:08 2019
时间元组: time.struct_time(tm_year=2019, tm_mon=11, tm_mday=28, tm_hour=9, tm_min=55, tm_sec=32, tm_wday=3, tm_yday=332, tm_isdst=0)
res = time.time() 获取当前系统的时间戳
res = time.ctime()获取当前系统时间,时间字符串 可用时间戳t来获取
res = time.localtime()获取当前系统时间, 时间元组 可用时间戳t来获取
时间元组格式化方法 xxxx年xx月xx日 时:分:秒 星期几
print(f'{res.tm_year}年{res.tm_mon}月{res.tm_mday}日 {res.tm_hour}:{res.tm_min}:{res.tm_sec} 星期{res.tm_wday+1}')
res = time.strftime('%Y-%m-%d %H:%M:%S %w') 用来 格式化时间 年-月-日 时:分:秒 星期几
sleep(秒) 在给定的秒数内暂停调用线程的执行。
计算程序的运行时间
start = time.perf_counter()
程序。。。。
end = time.perf_counter()
print(end-start)