一、使用os模块读取文件名
(一) listdir(path=‘.’)
用法:返回一个由path指定目录中包含的文件名称(或者文件夹名称)组成的列表。该列表按任意顺序排列,并且不包括特殊条目 '.'
和 '..'
但列表只包含指定目录中所显示的,不会由指定目录中文件夹里面的文件或文件夹
示例:
import os
file_list = os.listdir('某文件目录')
print(file_list, type(file_list))
如果想读取指定某文件目录
中的某一类型文件,我们可以这样:(以.csv文件为例)
import os
file_list = os.listdir('某文件目录')
for i in file_list:
if i[-4:] == '.csv':
print(i)
二、Excel读写
(一)首先我们要知道,微软的Excel后缀名有: .xls
、 .xlsx
区别:
.xls
: excel 2007以前的文件后缀名最多容纳256列65536行数据
使用
xlwt
、xlrd
模块
.xlsx
: excel 2007开始文件使用的后缀名最多容纳16384列1048567行数据
使用
openpyxl
模块excel 2007开始兼容
xls
、xlsx
后缀名
(二)python能够操作excel的模块
openpyxl
xlsxwriter
xlwt
pandas
xlrd
win32com
xlutils
(三)安装三方模块
底部Terminal中输入:
Windows系统 : pip install xxx
Mac 、Linux系统 :pip3 install xxx
或者:
File —> Settings —> Project —> Python Interpreter —> 点击 ‘+’ 号 输入xxx —>Install Package (显示安装成功)
(四)如何安装模块到虚拟环境
激活虚拟环境
Terminal中显示:(venv)表示虚拟环境已激活
如果没有显示
- 使用: ./venv/scripts/activate 进行虚拟环境激活
- 如果报错:说明微软禁用了终端执行脚本的功能
- 使用: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser 解除禁用
- 再次执行 ./venv/scripts/activate
查看已经安装过的模块:pip list
(五)工作簿、工作表、单元格
工作簿:一个excel文件就是一个工作簿
工作表:一个工作簿的多张表格
单元格:存储信息的方格
(六)Excel写操作
1.新建一个excel文件
不能使用open方法
新建文件:Workbook()
import openpyxl
file = openpyxl.Workbook()
注意:
如果文件存在: openpyxl.load_workbook(文件路径和文件名)
2.操作工作表
**创建工作表对象: **create_sheet(表名,下标)
如果直接在工作簿最后追加工作表,下标参数不用写
创建工作簿会自动生成一个Sheet工作表
file.create_sheet('学生成绩', 0)
file.create_sheet('学生成绩1')
sheetnames:查看工作簿中已经存在的工作表
print(file.sheetnames)
**移除工作表:**remove(表)
表:对应工作簿[工作表]
表名以字符串来表示
file.remove(file['Sheet'])
3.从工作表插入信息
在这里我用学生工作表举例:
方法一:
cell(行号,列号) --> 定位单元格
value --> 获取单元格内容
示例:
将第一行第一列插入’姓名’
file['学生成绩'].cell(1, 1).value = '姓名'
print(file['学生成绩'].cell(1, 1).value)
将第一行第二列插入’姓名’
file['学生成绩'].cell(1, 2).value = '性别'
print(file['学生成绩'].cell(1, 2).value)
方法二:
使用[列号行号] 定位单元格
excel中列号用字母表示,行号用数字表示
value --> 获取单元格内容
file['学生成绩']['AAA1'] = '姓名'
print(file['学生成绩']['AAA1'].value)
4.保存文件
新建excel文件是在最后保存文件的时候写文件名
file.save('./学生成绩.xlsx')
(七)Excel读操作(xlsx版)
1.加载xlsx
文件
import openpyxl
file = openpyxl.load_workbook('./某文件.xlsx')
2.从工作簿中找工作表
ws = file['Sheet1']
max_row:获取
xlsx
文件中最大行数max_column:获取
xlsx
文件中最大列数
# 行
for i in range(1, rows + 1):
# 列
for j in range(1, col + 1):
print(ws.cell(i, j).value)
三、csv文件数据写入
(一)新建xlsx后缀文件
import os
import csv
import openpyxl
file = openpyxl.Workbook()
(二)新建工作表
file.create_sheet('xxx工作表')
(三)从源数据文件读数据
file_list = os.listdir('指定文件夹目录')
print(file_list)
(四)写数据
count作用:计数,进行行号的递增
count = 0
for i in file_list:
f = open('想要打开的。csv文件', 'r', encoding='utf-8')
read_data = csv.reader(f)
for j in read_data:
count += 1
for x in range(0, len(j)):
# 根据每一条数据长度判断写n列
file['xxx工作表'].cell(count, x + 1).value = j[x]
f.close()
file.save('想要保存的文件名.xlsx')
print('数据写入完成')