python读写word、excel、csv、json文件
http://blog.csdn.net/pipisorry/article/details/50368044
python读写word文档
将word文档转换成txt文档
def doc2txt(): ''' 将doc文档转换成txt文档 :return: ''' from win32com import client INPUT_DIR = r'C:\Users\pi\Desktop\New folder' OUTPUT_DIR = r'C:\Users\pi\Desktop\txts' word = client.Dispatch('Word.Application') for doc_name in listdir(INPUT_DIR): print(doc_name) doc_full_name = path.join(INPUT_DIR, doc_name) doc = word.Documents.Open(doc_full_name) doc.SaveAs(path.join(OUTPUT_DIR, doc_name.split(]), ) doc.Close() word.Quit()
wdFormatDocument = 0 wdFormatDocument97 = 0 wdFormatDocumentDefault = 16 wdFormatDOSText = 4 wdFormatDOSTextLineBreaks = 5 wdFormatEncodedText = 7 wdFormatFilteredHTML = 10 wdFormatFlatXML = 19 wdFormatFlatXMLMacroEnabled = 20 wdFormatFlatXMLTemplate = 21 wdFormatFlatXMLTemplateMacroEnabled = 22 wdFormatHTML = 8 wdFormatPDF = 17 wdFormatRTF = 6 wdFormatTemplate = 1 wdFormatTemplate97 = 1 wdFormatText = 2 wdFormatTextLineBreaks = 3 wdFormatUnicodeText = 7 wdFormatWebArchive = 9 wdFormatXML = 11 wdFormatXMLDocument = 12 wdFormatXMLDocumentMacroEnabled = 13 wdFormatXMLTemplate = 14 wdFormatXMLTemplateMacroEnabled = 15 wdFormatXPS = 18
照着字面意思应该能对应到相应的文件格式,如果你是office2003可能支持不了这么多格式。word文件转html有两种格式可选wdFormatHTML、wdFormatFilteredHTML(对应数字8、10),区别是如果是wdFormatHTML格式的话,word文件里面的公式等ole对象将会存储成wmf格式,而选用wdFormatFilteredHTML的话公式图片将存储为gif格式,而且目测可以看出用wdFormatFilteredHTML生成的HTML明显比wdFormatHTML要干净许多。
当然你也可以用任意一种语言通过com来调用office API,比如PHP.
[python模块:win32com用法详解]
[python读取word文档]
[Python-docx:读写word文档的Python库]
python读写excel文档
实例
将H列如下修改一下
当然这个可以拷贝到notepad++中,使用替换(\d+\*\d+).*为\1就ok了
Python中读取微软excel的模块
openpyxl
The recommended package for reading and writing Excel 2010 files (ie: .xlsx)
xlrd
This package is for reading data and formatting information from older Excel files (ie: .xls)
安装
pip install openpyxl
基本使用代码实现
def openpyxl_excel(FILENAME=r'C:\Users\pi\Desktop\1.xlsx'): ''' 只能操作office 2010+版本文件 ''' import openpyxl as xl wb = xl.load_workbook(FILENAME) # 读取excel文件 ]) # 选择某个sheet ].value for i in ws['H1:H' + str(ws.max_row)]] # 选择某一列的所有数据 # 对选中的数据进行操作 :item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec] for index, i in enumerate(ws['H1:H' + str(ws.max_row)]): ].value = pro_spec[index] # 将数据修改到excel文件单元格中 wb.save(FILENAME) # 保存文件修改
Python XLRD Error : formula/tFunc unknown FuncID:186
找到formula.py文件(D:\python3.4.2\Lib\site-packages\xlrd\formula.py)186行左右,在文字184和文字189中间加插入一行
186: ('HACKED', 1, 1, 0x02, 1, 'V', 'V')
[Python XLRD Error : formula/tFunc unknown FuncID:186]
[官网主页homepage]
微软官方Excel管理Python模块:Pyvot
安装方式
前提是预先安装有Python for Windows extensions (pywin32)和Office 2010。
安装命令是:pip install pyvot
微软官方Excel管理Python模块
导入方式
import xl
把Python内容导入到Excel中
>>> xl.Workbook() # 创建空的Excel表单,状态为active>>> a = range(1,10) # 一个Python列表>>> a[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> xl.view(a) # 将Python列表展示在Excel中
Python列表被拷贝进了Excel。
Excel内容转成Python对象
从Excel中获取数据需要xl.Range对象,这个对象代表要操作的单元格。xl.view函数返回选择的存储数据的单元格的范围。
>>> r = xl.view(range(1,10))>>> r<ColumnVector range object for $A$2:$A$1048576 (visible only)>>>> r.get()[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]>>> sum(r) # ranges are iterable45.0
需要注意的是,view函数实际上选中了整个A列,但是Range.get假设我们只需要里面有用的数据。
现在我们可以修改Excel中的数据,然后重新获取数据回来。例如我们手动在Excel中删除一些行,把Excel中的数据改为这样:
>>> r.get() # get updated values[1.0, 20.0, 8.0, 9.0]
当前的选择范围仍旧是一个Range对象,这允许我们在Excel中筛选我们感兴趣的数据。
>>> xl.selected_range().get()8.0
使用Range对象的注意事项:
它排除了表头行(get("ColumnName").get()不包含"ColumnName")
它只从被使用了的范围里面进行选择。相对应的,原生的Excel COM API有一个非常令人沮丧的问题,就是如果你选择一列,它返回一百万个空的单元格给你。
Workbook.Range方法相比之下只处理A1这种风格的引用,和命名范围。
代码实现
FILENAME = r'C:\Users\pi\Desktop\5-3入库.XlS' def xl_excel(): ''' 微软官方xl模块 ''' import xl book = xl.Workbook(FILENAME) # 打开文件 pro_spec = book.get("H:H").get() # 获得某一列数据 # 对数据进行操作 :] xl.view(pro_spec, to=book.get("I:I")) # 将数据写入对应列
不过lz推荐用pandas处理excel数据,毕竟datafram数据结构就和excel表一样。
python读写csv文档
python读取csv文件
with open('stock.tsv') as f:
f_tsv = csv.reader(f, delimiter='\t')
for row in f_tsv:
# Process row
python写csv文件
csv_w = csv.writer(csv_file)
csv_w.writerow(predict_label_list[label_start_no:label_start_no + line_no])
出现的问题
csv_w = csv.writer(csv_file, delimiter=',', lineterminator='\n')
而不能通过文本模式,即不带b的方式,w,w+,a+等,否则,会导致使用writerow写内容到csv中时,产生对于的CR,导致多余的空行。
from:http://blog.csdn.net/pipisorry/article/details/50368044
ref:数据编码和处理
python读写word、excel、csv、json文件的更多相关文章
- Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件
Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的 ...
- [Spark][python]以DataFrame方式打开Json文件的例子
[Spark][python]以DataFrame方式打开Json文件的例子: [training@localhost ~]$ cat people.json{"name":&qu ...
- Python批量修改Excel中的文件内容
import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None): return os.path.join ...
- Python【8】-分析json文件
一.本节用到的基础知识 1.逐行读取文件 for line in open('E:\Demo\python\json.txt'): print line 2.解析json字符串 Python中有一些内 ...
- python webdriver 测试框架-数据驱动json文件驱动的方式
数据驱动json文件的方式 test_data_list.json: [ "邓肯||蒂姆", "乔丹||迈克尔", "库里||斯蒂芬", & ...
- 用python读写和处理csv文件
import requestsfrom bs4 import BeautifulSoupimport csv date = open('test.csv', 'w')writer = csv.writ ...
- Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...
- Python读写改Excel的方法
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 面对疾风吧. 回首往昔,更进一步. 且随疾风前行,身后一许流星. 正文: 数据处理是Python的一大应用场景,而 Exce ...
随机推荐
- jquery easyui datagrid动态改变title的值
title:'<input type="text" id="txtTitle1" style="background:none;border:n ...
- vue开发中遇到的问题集锦(2)
1,在搭建了一个vue的脚手架之后,写了第一个组件,路由也已经配置完毕,且页面的路由显示是:http://localhost:8080/#/userLogin,userLogin里面有内容,但是页面显 ...
- reload(sys)后print失效问题解决
python版本: python2.7.6 #查看python默认编码格式 >>> import sys >>> print sys.getdefaultencod ...
- python脚本文件传参并通过token登录后爬取数据实例
from bs4 import BeautifulSoup import requests import sys class Zabbix(object): def __init__(self, he ...
- 为什么要用 Docker
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势. 首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多. 其次,Docker 对系统资源的利用率很 ...
- Spring声明式事务总结
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource.TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分. DataSo ...
- Gradle 1.12用户指南翻译——第四十七章. Build Init 插件
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- 建立自己的git服务器
需求情景 就像金山快盘同步盘那样, 在开发环境windows 10和部署环境Ubuntu server 14.04之间建立同步关系.比如windows端多了一个a.txt文件,你推送后,Ubuntu端 ...
- 让你的代码量减少3倍!使用kotlin开发Android(二) --秘笈!扩展函数
本文承接上一篇文章:让你的代码量减少3倍!使用kotlin开发Android(一) 创建Kotlin工程 本文同步自博主的私人博客wing的地方酒馆 上一节说到,kotlin可以省去getter,se ...
- 如何将一个二进制的xxx.bin文件轻松转为C语言数组
今天在写一个SPI-flash读写程序,目的是要将一个二进制文件写到SPI_FLASH中,最后通过开机读取,实际上这个.bin文件就是uboot和second-boot的结合体.通过SD卡写到SPI- ...