快捷键
ctrl+/:单行注释
ctrl+d:复制粘贴一行
os模块
import os#操作文件和文件夹
print(os.getcwd())#获取当前工作路径
print(os.listdir("D:"))#列出当前目录下的文件
print(os.path.splitext('python.exe'))#分开文件主名和扩展名
print(os.rename('D:\\登记照.jpg', 'D:\\社保照片.jpg'))#重命名
print(os.rename('D:\\test', 'D:\\社保照片'))#重命名文件夹
print(os.rename('D:\\社保照片 - 副本.jpg', 'D:\\test\\社保照片.jpg'))#移动文件,限制比较大,只能移动到相同磁盘已存在的目录中
xlwings模块
下载xlwings模块:
用清华的镜像源:pip install xlwings -i https://pypi.tuna.tsinghua.edu.cn/simple/
import xlwings as xl
app = xl.App(visible=True, add_book=False)#
workbook_new = app.books.add()#创建工作簿
workbook_new.save('D:\\输出.xlsx')#保存工作簿
workbook_new.close()#关闭工作簿
app.quit()#关闭excel
import xlwings as xl
app = xl.App(visible=True, add_book=False)#
workbook = app.books.open('D:\\第4集:精准搜索的技术:定位和查找.xlsx')
worksheet = workbook.sheets['定位简介']#选中工作表定位简介
worksheet.range('A3').value = 'bilibili'#在单元格A1输入内容
workbook.sheets.add('灵笼')#新增一个名称为灵笼的表
import xlwings as xl
app = xl.App(visible=True, add_book=False)
#在F盘下创建一个名为灵笼的工作簿,里面包含有一个cp表,里面的数据为马克和冉冰
workbook = app.books.add()
worksheet = workbook.sheets.add('cp')
worksheet.range('A1').value = '马克'
worksheet.range('B1').value = '冉冰'
workbook.save('F:\\灵笼')
workbook.close()
app.quit()
Numpy
Numerical Python,运算速度非常快的数学模块,主要用于数组计算
import numpy as np
a = [2, 2, 3, 3]
b = np.array(a)
print(a) # [2, 2, 3, 3]
print(b) # [2 2 3 3]
print(type(a)) #
print(type(b)) #
print(a[0]) # 2
print(b[0]) # 2
# 切片操作,中间为冒号
print(a[0:2]) # [2, 2]
print(b[0:2]) # [2 2]
print(a * 2) # [2, 2, 3, 3, 2, 2, 3, 3]
print(b * 2) # [4 4 6 6]c = [[1, 2], [3, 4], [5, 6]]
c = [[1, 2], [3, 4], [5, 6]]
d = np.array(c)
print(c) # [[1, 2], [3, 4], [5, 6]]
print(d)
# [[1 2]
# [3 4]
# [5 6]]
import numpy as np
# 创建二维数组
e = np.arange(12).reshape(3, 4)
print(e)
#[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
# 创建随机整数二维数组
f = np.random.randint(0, 10, (3, 3))
print(f)
#[[8 3 8]
# [6 1 6]
# [0 2 6]]
pandas模块
名字来源于panel data,面板数据,与Numpy相比,pandas更擅长处理二维数据,其主要有Series和DataFrame两种结构。
Series类似于Numpy的一维数组,但它不仅包含数值还包含索引
import pandas as pd
array = pd.Series(['马克', '冉冰', '4063', '4277'])
print(array)
#0 马克
#1 冉冰
#2 4063
#3 4277
#dtype: object
DataFrame是一种二维表格结构,可以将其看成一个Excel表格
# 通过列表创建DataFrame
#法一
tdarray = pd.DataFrame([[1, 2], [3, 4], [5, 6]])
print(tdarray)
# 0 1
# 0 1 2
# 1 3 4
# 2 5 6
#自定义行列名,index行,columns列
tdarray_1 = pd.DataFrame([['马克', '冉冰'], ['唐尼', '佩尼'], ['破晓', '红蔻']], index=[1, 2, 3], columns=['男生', '女生'],)
print(tdarray_1)
# 男生 女生
#1 马克 冉冰
#2 唐尼 佩尼
#3 破晓 红蔻
print(tdarray_1['男生'][1]) # 马克 访问的顺序和Excel的顺序是一样的,先列后行
# 法二
tdarray_2 = pd.DataFrame()
man_name = ['马克', '唐尼', '破晓']
feman_name = ['冉冰', '佩尼', '红蔻']
tdarray_2['男生'] = man_name
tdarray_2['女生'] = feman_name
print(tdarray_2) # 感觉它的数据逻辑是以列为基础的
# 男生 女生
#0 马克 冉冰
#1 唐尼 佩尼
#2 破晓 红蔻
#为行列更名
tdarray_2.rename(index={'0': 'a', '1': 'b', '2': 'c'}, columns={'男生': 'man', '女生': 'female'}, inplace=True)#不知道为什么对行名的rename没成功
print(tdarray_2)
# man female
#0 马克 冉冰
#1 唐尼 佩尼
#2 破晓 红蔻
# 通过字典创建DataFrame
tdarray_3 = pd.DataFrame({'男生': ['马克', '唐尼', '破晓'], '女生': ['冉冰', '佩尼', '红蔻']})
tdarray_3.index.name = '编号' # 修改行索引列的名字
print(tdarray_3)
# 男生 女生
#编号
#0 马克 冉冰
#1 唐尼 佩尼
#2 破晓 红蔻
tdarray_4 = pd.DataFrame().from_dict({'男生': ['马克', '唐尼', '破晓'], '女生': ['冉冰', '佩尼', '红蔻']}, orient='index') # 以字典键名作为行索引
print(tdarray_4)
# 0 1 2
#男生 马克 唐尼 破晓
#女生 冉冰 佩尼 红蔻
# 通过二维数组创建DataFrame
a = np.random.randint(0, 10, (3, 3))
b = pd.DataFrame(a)
print(b)
# 0 1 2
#0 2 7 7
#1 7 9 9
#2 3 5 3
今天的水晶数:1082、9/15