不知道是不是实习的原因,最近痴迷于写各种小脚本提高工作效率,hh于是今天就用上了之前做小项目时学的python操作excel啦!
害,说起来惭愧,学习python一年了,基础语法还是记不住,每次要写的时候都是去网上现找,可能我的编程之路只能止于小脚本叭!
话不多说,开始上代码啦!
···
import os
from os import path
from xlrd import open_workbook
import xlwt
import openpyxl
import jieba.analyse
#打开工作表
workbook=openpyxl.load_workbook("test.xlsx")
worksheet=workbook.get_sheet_by_name("TED演讲分析0-6mins")
#提取停用词
stop_path=r'stoplist.txt'
text=open(stop_path).readlines()
stoplist=[]
for line in text:
line=line.strip('\n')
stoplist.append(line)
#返回文件名列表
path="E:\保留文件\研究生后\下学期\TED_English_06\page_"
ncol=4
for i in range(1,27):
num=str(i)
files=os.listdir(path+num)
#删除中文文件
for file in files:
if file[-11:-4]=="CHINESE":
files.remove(file)
#遍历英文文件
for en_file in files:
file_path=os.path.join(path+num,en_file)
with open(file_path,encoding='utf-8') as f:
content=f.read()
#提取内容中的关键信息
keywords=[]
keywords_tfidf = jieba.analyse.extract_tags(content,topK=40,withWeight=True)
for word in keywords_tfidf:
if word[0] not in stoplist:
keywords.append(word[0])
str_keywords="\n".join(keywords)
#把名字写入name列,把内容填入常见词汇
name_row=1
page_row=2
des_row=6
worksheet.cell(name_row,ncol,value=en_file[5:-12])
worksheet.cell(page_row,ncol,value=num)
worksheet.cell(des_row,ncol,value=str_keywords)
ncol+=1
print("已写入第"+str(ncol)+"列")
#print(num,en_file[5:-12])
#print(str_keywords)
print("finish"+"page"+num)
workbook.save("result.xls")
print("finish all")
···
今天遇到了两个坑:
1. import xlutils.copy 的时候一直提示没有copy,没有copy,最后只能放弃这个方法了
2. 使用openpyxl 可以向excel中追加写内容,但是我刚开始把读表放在了循环内部,这就会导致每次循环时都会重新读表写表,表还没保存呢,里面内容就被抹去了,害,就这一步浪费了两个小时,难受!
Anyway,写了脚本能方便大家的工作我还是很开心哒,小魏继续加油!