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 ...
随机推荐
- python2.7练习小例子(三)
3):题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析:假设该数为 x.1.则:x + 100 = n2, x + 100 + ...
- Python从入门到实践 学习笔记(二)元祖686gffs
列表是可以修改的,而不可变的列表被称为元组 . 定义 * 用圆括号来标识.定义元组后,使用索引来访问其元素,就像访问列表元素一样 修改变量 * 不能修改元组的元素,但可以给存储元组的变量赋值 修改元素 ...
- 项目管理软件系列-Linux一键安装禅道
linux用一键安装包 简介:本文介绍如何在linux下面使用禅道一键安装包搭建禅道的运行环境. linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅 ...
- python 类属性.方法 实例的基本用法
class man(): classify = "people"# 全局属性 def __init__(self,name,age,value,):#类方法 self.name = ...
- win10安装配置vs community 2015+opencv3.1.0
下载并安装Visual Studio Community 2015.具体安装步骤自行解决.下载地址: https://www.visualstudio.com/ 下载opencv3.1.0,并解压.地 ...
- 如何joomla修改版权信息
1.在language\zh_CN目录下有一个zh-CN.mod_footer.ini文件,修改里面的内容: 2.具体模板的html\mod_footer目录下的default.php文件内(具体文件 ...
- C#系统之垃圾回收
1. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste ...
- AWS EC2 CentOS release 6.5 部署redis
AWS EC2 CentOS release 6.5 部署redis参考:http://blog.csdn.net/ludonqin/article/details/47211109一.安装redis ...
- 十六进制字符串转化为十进制值strtoul函数
eg: NSString *strtest =@"7fffffff"; NSUInteger val = strtoul([[strtest substringWithRange: ...
- Servlet - Upload、Download、Async、动态注册
Servlet 标签 : Java与Web Upload-上传 随着3.0版本的发布,文件上传终于成为Servlet规范的一项内置特性,不再依赖于像Commons FileUpload之类组件,因此在 ...