http://blog.csdn.net/pipisorry/article/details/50368044

python读写word文档

(include wps)
将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]

[python操作excel之xlrd]

微软官方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"))  # 将数据写入对应列

[微软官方Excel管理Python模块]

[Getting Started with Pyvot]

不过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文件

with open(csv_filename, 'w', encoding='utf-8') as csv_file:
csv_w = csv.writer(csv_file)
        for line_no in line_no_list:
            csv_w.writerow(predict_label_list[label_start_no:label_start_no + line_no])

出现的问题

Python中通过csv的writerow输出的内容有多余的空行
也就是csv.writer().writerow()保存的csv文件,打开时每行后都多一行空行
解决1:
with open(csv_filename, 'w', encoding='utf-8', newline='') as csv_file:
csv_w = csv.writer(csv_file, delimiter=',', lineterminator='\n')
csv方言参数中有一个  lineterminator,他的作用是定义csv结束一行的符号, 默认值是 '\r\n',如果有需要,也可以尝试修改csv.register_dialect(lineterminator='\n',)
解决2:
在open()内增加一个参数newline='' 即可,但是在windows下,换行还是两个\r\n而不是只有\n。
对newline参数的解释:参数newline是用来控制文本模式之下,一行的结束字符。可以是None,’’,\n,\r,\r\n等。当在读取模式下,如果新行符为None,那么就作为通用换行符模式工作,意思就是说当遇到\n,\r或\r\n都可以作为换行标识,并且统一转换为\n作为文本输入的换行符。当设置为空’’时,也是通用换行符模式工作,但不作转换为\n,输入什么样的,就保持原样全输入。当设置为其它相应字符时,就会判断到相应的字符作为换行符,并保持原样输入到文本。当在输出模式时,如果新行符为None,那么所有输出文本都是采用\n作为换行符。如果设置为’’或者\n时,不作任何的替换动作。如果是其它字符,会在字符后面添加\n作为换行符。
解决3:
Python中的csv的writer,打开文件的时候,要通过binary模式去打开,即带b的,比如wb,ab+等
而不能通过文本模式,即不带b的方式,w,w+,a+等,否则,会导致使用writerow写内容到csv中时,产生对于的CR,导致多余的空行。
[CSV 文件的读写]

python读写json文档

[python对象与json]

from:http://blog.csdn.net/pipisorry/article/details/50368044

ref:数据编码和处理

python读写word、excel、csv、json文件的更多相关文章

  1. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  2. Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件

    Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的 ...

  3. [Spark][python]以DataFrame方式打开Json文件的例子

    [Spark][python]以DataFrame方式打开Json文件的例子: [training@localhost ~]$ cat people.json{"name":&qu ...

  4. Python批量修改Excel中的文件内容

    import osimport xlrdfrom xlutils.copy import copydef base_dir(filename=None):    return os.path.join ...

  5. Python【8】-分析json文件

    一.本节用到的基础知识 1.逐行读取文件 for line in open('E:\Demo\python\json.txt'): print line 2.解析json字符串 Python中有一些内 ...

  6. python webdriver 测试框架-数据驱动json文件驱动的方式

    数据驱动json文件的方式 test_data_list.json: [ "邓肯||蒂姆", "乔丹||迈克尔", "库里||斯蒂芬", & ...

  7. 用python读写和处理csv文件

    import requestsfrom bs4 import BeautifulSoupimport csv date = open('test.csv', 'w')writer = csv.writ ...

  8. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  9. Python读写改Excel的方法

    (注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正.) 面对疾风吧. 回首往昔,更进一步. 且随疾风前行,身后一许流星. 正文: 数据处理是Python的一大应用场景,而 Exce ...

随机推荐

  1. Python中dict的功能介绍

    Dict的功能介绍 1. 字典的两种函数(方法) 1. 字典的内置函数 包含关系 格式:x.__contains__(key)等同于key in x 例如:dic = {'ab':23,'cd':34 ...

  2. Padding Oracle攻击

    最近在复现LCTF2017的一道题目,里面有一个padding oracle攻击,也算是CBC翻转攻击,这个攻击主要针对CBC加密模式的 网上有关这个攻击的博客文章很多,但是其中有一些细节可能是个人的 ...

  3. Linux学习之CentOS(十九)------linux 下压缩与解压之 tar、gzip、bzip2、zip、rar

    将文件存储到归档文件中或者从归档文件中获取原始文件,以及为文件创建归档文件 tar [option] [modifiers] [file-list] 参数 file-list是tar进行归档和提取的文 ...

  4. Python内置方法的时间复杂度

    转载自:http://www.orangecube.NET/Python-time-complexity 本页面涵盖了Python中若干方法的时间复杂度(或者叫"大欧"," ...

  5. JS运行机制之 Event Loop 的思考

    先举个栗子,如下: for (var i = 0; i < 5; i++) { setTimeout(function() { console.log('i: ',i); //一秒之后输出几乎没 ...

  6. discuz全新安装升级,导入旧数据过程,顺便gbk转utf8

    由于discuz官方已经不更新了,现在又只有现成的utf8版本,没有gbk版本.我们原来使用的是gbk编码的,最近想改版,顺便升级一下,就索性把gbk也换成utf8吧,这样以后也方便,国际化嘛! 第一 ...

  7. ubuntu批量更改文件权限

    重装系统之后,把文件从windows分区拷到linux分区发现所有文件的权限全是777,在终端下看到所有文件的颜色都很刺眼,文件有很多,一个一个改不现实,所以写了一段python脚本批量更改文件权限. ...

  8. ubuntu下安装 python 常用软件

    1.用于科学计算的常用包: sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-noteb ...

  9. sa账号无法登陆sqlserver2008

    今天遇到sa无法登陆sqlserver2008的问题,原来是sa账户未启用,混合验证模式没打开,太低端了. 具体解决过程将从百度文库里查到的文章张贴如下: 出现问题 : 标题: 连接到服务器 ---- ...

  10. Windows下的DOM操作

    前言:这学期学Linux之后,发现用命令行的方式来操作电脑还是很好玩的~写这篇随笔来总结下Windows环境下通过DOS来执行命令的操作,希望能帮到您~自己忘记的时候能回来复习emmm 启动DOS环境 ...