一、txt读写
-
读
import codecs
with codecs.open(filepath,'r+','utf-8') as f:
dict_data=f.readlines()#读取所有行(\n换行符区分)到列表中,可以通过for in 逐行读取
dict_data=f.read()#整个文档读进来
dict_data=f.lineread()#调用一次读取一行,返回的是字符串
f.close()
-
写
import codecs
with codecs.open('add_drugname.txt','w+',encoding='utf-8') as f:
f.write(entities)
f.close() #有没有都可以,因为当with后面的代码块全部被执行完之后,将调用前面返回对象的__exit__()方法。
注:
- 为什么用with as
with 语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。
- 为什么用codecs.open而不用open
有时候我们爬虫或者其他方式得到一些数据写入文件时会有编码不统一的问题,所以就一般都统一转换为unicode。此时写入open方式打开的文件就有问题了。
文件读写模式(mode):
|模式|描述|
|:-:|:-:|
|r|仅读,待打开的文件必须存在|
|w|仅写,若文件已存在,内容将先被清空|
|a|仅写,若文件已存在,内容不会清空|
|r+|读写,待打开的文件必须存在|
|w+|读写,若文件已存在,内容将先被清空|
|a+|读写,若文件已存在,内容不会清空|
|rb|仅读,二进制,待打开的文件必须存在|
|wb|仅写,二进制,若文件已存在,内容将先被清空|
|ab|仅写,二进制,若文件已存在,内容不会清空|
|r+b|读写,二进制,待打开的文件必须存在|
|w+b|读写,二进制,若文件已存在,内容将先被清空|
|a+b|读写,二进制,若文件已存在,内容不会清空|
二、xlsx读写
-
读
import xlrd
data1=xlrd.open_workbook('drug1.xlsx')
table1=data1.sheet_by_name(u'drug1')
nrow1=table1.nrows#获取表格行数
data=[]
for i in range(nrow1):
DrugName=table1.cell(i,0).value#读取表格内第一列的值,按行读取
-
写
方法1
from pyExcelerator import *
w = Workbook() #创建一个工作簿
ws = w.add_sheet('Hey, Hades') #创建一个工作表
ws.write(0,0,'bit') #在1行1列写入bit
ws.write(0,1,'huang') #在1行2列写入huang
ws.write(1,0,'xuan') #在2行1列写入xuan
w.save('mini.xls') #保存
方法2
import pandas as pd
df=pd.DataFrame(data,columns=['sectionType','sentenceID','sentenceText',
'entityName','severity_of_attacks','clinical_course0',
'expression_degree','age_of_onset'])
df.to_excel('lclj_diagnosis_entity.xlsx',sheet_name='lclj_diagnosis_entity')
#将数据写到一个列表中,然后用pandas中的DataFrame数据结构表示,再用pd.to_excel()存到表格中
参考:
[1] https://blog.csdn.net/chenyxh2005/article/details/72465758
[2] https://www.ibm.com/developerworks/cn/opensource/os-cn-pythonwith/index.html
[3] http://www.cnblogs.com/buptldf/p/4805879.html
[4] https://www.jb51.net/article/42635.htm