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 ...
随机推荐
- Java的五子棋实现
Java 五子棋 注:除机器人算法外其余借鉴于MLDN. package MyFiveChess; import robot.*; import java.awt.*; import javax.sw ...
- HTML中鼠标滚轮事件onmousewheel处理
滚轮事件是不同浏览器会有一点点区别,一个像Firefox使用DOMMouseScroll ,ff也可以使用addEventListener方法绑定DomMouseScroll事件,其他的浏览器滚轮事件 ...
- Struts+Hibernate+jsp页面,实现分页
dao层代码 package com.hanqi.dao; import java.util.ArrayList; import java.util.List; import org.hibernat ...
- Java网络爬虫Hello world实现——Httpclient爬取百度首页
1.创建Maven项目 2.Httpclient Maven地址 <dependency> <groupId>org.apache.httpcomponents</gro ...
- Docker Kubernetes 项目
Kubernetes 是 Google 团队发起并维护的基于Docker的开源容器集群管理系统,它不仅支持常见的云平台,而且支持内部数据中心. 建于Docker之上的Kubernetes可以构建一个容 ...
- 数学API Math.atan() 和Math.atan2() 三角函数复习
今天在学习贝塞尔曲线看到需要结合三角函数 以及两个不认识的Api :API Math.atan() 和Math.atan2() 先看下三角函数 正切函数图:(180为一个周期 即45=45+180) ...
- java异常拾遗
概述 当方法内部发生一项错误时,该方法会创建一个对象传递给运行时系统(runtime system),这个对象被称为异常对象,包含错误的类型.发生位置,程序状态等一系列信息. 当一个方法抛出异常时,运 ...
- Django项目实践4 - Django站点管理(后台管理员)
http://blog.csdn.net/pipisorry/article/details/45079751 上篇:Django项目实践3 - Django模型 Introduction 对于某一类 ...
- activiti 多实例任务
1.1.1. 前言 个人,那么当5个人都投票的时候大概分为如下几种: 1.部门所有人都去投票,当所有人都投票完成的时候,这个节点结束,流程运转到下一个节点.(所有的人都需要投票) 2.部门所有人都去投 ...
- Android Multimedia框架总结(十二)CodeC部分之OMXCodec与OMX事件回调流程
转载请把头部出处链接和尾部二维码一起转载,本文出自逆流的鱼yuiop:http://blog.csdn.net/hejjunlin/article/details/52629449 前言:上篇文中分析 ...