1.excel文件的读操作
import openpyxl
wb = openpyxl.load_workbook('files/学生信息.xlsx')
names = wb.sheetnames
print(names)
sheet1 = wb.active
print(sheet1)
sheet2 = wb['Sheet1']
print(sheet2)
print(sheet1.title)
print(sheet1.max_row)
print(sheet1.max_column)
cell1 = sheet1['A2']
print(cell1)
cell2 = sheet1.cell(2, 1)
print(cell1.value)
print(cell2.value)
for row in range(1, sheet1.max_row + 1):
for col in range(1, sheet1.max_column+1):
print(sheet1.cell(row, col).value, end=' ')
print()
for col in range(1, sheet1.max_column+1):
print(sheet1.cell(2, col))
for row in range(1, sheet1.max_row+1):
print(sheet1.cell(row, 3))
2.excel文件写操作
import openpyxl
import os
if os.path.exists('files/test.xlsx'):
print('打开')
wb = openpyxl.load_workbook('files/test.xlsx')
else:
print('新建')
wb = openpyxl.Workbook()
wb.save('files/test.xlsx')
try:
wb.remove(wb['老师表'])
except KeyError:
pass
if 'Sheet' in wb.sheetnames:
wb['Sheet'].title = '课程表'
sheet2 = wb['课程表']
list1 = ['Python', '余婷', '5个月', 10000]
for index, item in enumerate(list1):
sheet2.cell(3, index+1).value = item
wb.save('files/test.xlsx')
3.CSV文件操作
import csv
f = open('files/2018年北京积分落户数据.csv', encoding='utf-8')
reader = csv.DictReader(f)
print(next(reader))
print(next(reader))
f = open('files/test.csv', 'w', encoding='utf-8')
writer = csv.writer(f)
writer.writerow(['name', 'age', 'score', 'gender'])
writer.writerows([
['小明', 18, 100,'男'],
['小花', 20, 92, '女'],
['老王', 30, 80, '男']
])
f = open('files/test2.csv', 'w', encoding='utf-8')
writer = csv.DictWriter(f, ['name', 'age', 'score', 'gender'])
writer.writeheader()
writer.writerow({'name': '小明', 'age': 18, 'score': 100, 'gender': '男'})
writer.writerows([
{'name': '小花', 'age': 30, 'score': 92, 'gender': '女'},
{'name': '小红', 'age': 28, 'score': 67, 'gender': '女'},
{'name': '老王', 'age': 25, 'score': 88, 'gender': '男'}
])
4.练习
import openpyxl, csv
def read_data():
wb = openpyxl.load_workbook('files/小宝剑大药房.xlsx')
sheet = wb.active
m_row = sheet.max_row
m_col = sheet.max_column
all_data = []
for row in range(1, m_row + 1):
data = []
for col in range(1, m_col + 1):
value = sheet.cell(row, col).value
data.append(value)
all_data.append(data)
return all_data
if __name__ == '__main__':
writer = csv.writer(open('files/小宝剑大药房.csv', 'w', encoding='utf-8'))
writer.writerows(read_data())
5.pdf文件操作
import PyPDF2, openpyxl
reader = PyPDF2.PdfFileReader('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf')
total_page = reader.getNumPages()
print(total_page)
page0 = reader.getPage(0)
page1 = reader.getPage(1)
page2 = reader.getPage(2)
page3 = page1.rotateClockwise(90)
writer1 = PyPDF2.PdfFileWriter()
writer1.addPage(page0)
writer1.addBlankPage()
writer1.addPage(page1)
writer1.addBlankPage()
writer1.addPage(page2)
writer1.addBlankPage()
f = open('files/test.pdf', 'wb')
writer1.write(f)
6.习题
import PyPDF2
reader1 = PyPDF2.PdfFileReader('files/存储引擎的讲解.pdf')
reader2 = PyPDF2.PdfFileReader('files/HEU_KMS_Activator_v20.0.0用户使用手册.pdf')
writer = PyPDF2.PdfFileWriter()
total1 = reader1.getNumPages()
total2 = reader2.getNumPages()
for page_num in range(total1):
writer.addPage(reader1.getPage(page_num))
for page_num in range(total2):
writer.addPage(reader2.getPage(page_num))
f = open('files/test2.pdf', 'wb')
writer.write(f)
7.增加水印
import PyPDF2
reader1 = PyPDF2.PdfFileReader('files/存储引擎的讲解.pdf')
walter_page = PyPDF2.PdfFileReader('files/demo1.pdf').getPage(0)
new_pdf = PyPDF2.PdfFileWriter()
for page_num in range(reader1.getNumPages()):
page = reader1.getPage(page_num)
page.mergePage(walter_page)
new_pdf.addPage(page)
f = open('files/test3.pdf', 'wb')
new_pdf.write(f)
8.创建文印文件
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
pdfmetrics.registerFont(TTFont('Font1', 'files/Vera.ttf'))
pdfmetrics.registerFont(TTFont('Font2', 'files/青呱石头体.ttf'))
walter_pdf = canvas.Canvas('files/walter.pdf')
walter_pdf.setFont('Font1', 40)
walter_pdf.setFillColorRGB(1, 0, 0, 1)
walter_pdf.rotate(45)
walter_pdf.drawString(200, 100, 'hello world!')
walter_pdf.setFillColorRGB(0, 1, 0, 1)
walter_pdf.setFont('Font2', 40)
walter_pdf.drawString(400, 200, 'hello world!')
walter_pdf.save()
|