目录
3.6.2xlwings模块与Matplotlib模块的交互
3.2处理文件和文件夹的模块——os
3.2.1获取当前运行的Python代码文件路径
import os
path=os.getcwd()
print(path)
'''
E:\数据分析师学习\jupyter notebook
'''
3.2.2列出指定路径下的文件夹包含的文件和文件夹名称
import os
path='E:\数据分析师学习\jupyter notebook' #指定路径
os.listdir(path) #指定路径下所有文件名
3.2.3分离文件主名和扩展名
import os
path='example.xlsx'
os.path.splitext(path)
'''
('example', '.xlsx')
'''
可以看到,splitext()函数返回的是一个包含两个元素的元组,前一个元素是文件名,后一个元素的扩展名:('example', '.xlsx')
3.2.4重命名文件和文件夹
os模块中的rename()函数可以重命名文件和文件夹,该函数的与噶格式如下:
rename(src,dst)
import os
oldname='E:\数据分析师学习\jupyter notebook\Tree.txt' #该目录下的文件Tree.txt文件
newname='E:\数据分析师学习\jupyter notebook\Tree1.txt'#该改成Tree1.txt文件
os.rename(oldname,newname)
还可以更改改名后文件存储的位置
import os
oldname='E:\数据分析师学习\jupyter notebook\Tree1.txt' #该目录下的文件Tree1.txt文件
newname='E:\Tree.txt'#更名后保存到另一个文件夹中
os.rename(oldname,newname)
用rename()函数重命名文件夹和重命名文件的方法类似,件文件的路径改为文件夹的路径:
import os
oldname='E:\数据分析师学习\mysql' #该目录下的文件夹
newname='E:\数据分析师学习\mysql1'#重命名文件夹名
os.rename(oldname,newname)
3.3批量处理Excel文件的模块——xlwings
可以处理Excel文件的Python模块有很多,如XlsxWriter、xlrd、xlwt、xlutils、openpyxl和xlwings等,下表对各模块的功能进行了简单对比。
功能/模块 | XlsxWriter | xlrd | xlwt | xlutils | openpyxl | xlwings |
---|---|---|---|---|---|---|
读 | × | √ | × | √ | √ | √ |
写 | √ | × | √ | √ | √ | √ |
修改 | × | × | × | √ | √ | √ |
支持xls格式 | × | √ | √ | √ | × | √ |
支持xlsx格式 | √ | √ | √ | × | √ | √ |
支持批量操作 | × | × | × | × | × | √ |
通过上表的对比发现,xlwings模块的功能是最齐全的,它不仅能读、写和修改两种格式的Excel文件(xls和xlsx),而且还能批量处理多个Excel文件。
3.3.1创建工作薄
- visible用于设置Excel程序窗口的可见性,True为可见,False为隐藏
- add_book用于设置启动Excel程序窗口是否为新建工作薄,True为新建,False为不新建
- add()为books对象的函数,用于新建工作薄
import xlwings as xw
app=xw.App(visible=True,add_book=False)
#visible用于设置Excel程序窗口的可见性,True为可见,False为隐藏
#add_book用于设置启动Excel程序窗口是否为新建工作薄,True为新建,False为不新建
workbook=app.books.add() #add()为books对象的函数,用于新建工作薄
3.3.2保存工作薄
如果要对上面的文件进行保存,代码如下:
workbook.save(r'C:\Users\Administrator\Desktop\example.xlsx') #保存到桌面,命名为example.xlsx
workbook.close() #关闭工作薄
app.quit() #退出Excel程序
绝对路径:'C:\\Users\\Administrator\\Desktop\\example1.xlsx'就是一个绝对路径,代码也可以写成r'C:\Users\Administrator\Desktop\example.xlsx',代码中的r用来取消路径中反斜杠"\"的转义功能。
相对路径:如果将代码写成workbook.save('.\example1.xlsx')或者workbook.save('example1.xlsx')那么就会在代码文件的文件夹下创建一个名为example1.xlsx的工作薄。
3.3.3打开工作薄
import xlwings as xw
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'C:\Users\Administrator\Desktop\example.xlsx')
#打开指定目录下的文件
3.3.4操控工作表和单元格
继3.3.3打开的工作薄进行操作
worksheet=workbook.sheets['Sheet1'] #选中工作表的sheet1表
worksheet.range('A1').value='编号' #将A1单元格填上编号
如果想新增sheet表,可以进行如下代码:
import xlwings as xw
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'C:\Users\Administrator\Desktop\example.xlsx')
#打开指定目录下的文件
worksheet=workbook.sheets.add('产品统计表')