python读写word、excel、csv、json、hive orc文件

2023-12-18 19:30

本文主要是介绍python读写word、excel、csv、json、hive orc文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

python读写word文档

(include wps)
将word文档转换成txt文档
def doc2txt():'''将doc文档转换成txt文档:return:'''from win32com import clientINPUT_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('.')[0]), 4)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库]
皮皮blog

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 xlwb = xl.load_workbook(FILENAME)  # 读取excel文件ws = wb.get_sheet_by_name(wb.get_sheet_names()[0])  # 选择某个sheetpro_spec = [i[0].value for i in ws['H1:H' + str(ws.max_row)]]  # 选择某一列的所有数据#  对选中的数据进行操作pro_spec = [item[0: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)]):i[0].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 xlbook = xl.Workbook(FILENAME)  # 打开文件pro_spec = book.get("H:H").get()  # 获得某一列数据# 对数据进行操作pro_spec = [item[0:item.rfind('*')] if item is not None and item.count('*') == 2 else item for item in pro_spec][1:]xl.view(pro_spec, to=book.get("I:I"))  # 将数据写入对应列
[微软官方Excel管理Python模块]

[Getting Started with Pyvot]

不过lz推荐用pandas处理excel数据,毕竟datafram数据结构就和excel表一样。

皮皮blog

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,导致多余的空行。

python读写json文档

[python对象与json ]

python读写hive orc文档

pip install pyorc

示例:# hdfs上读取所有orc文件并转为文本文件

import os
import pyorcorc_dir = "/data/train_data_d/pt=2013-10-08"
processed_file_path = "/data/train_data_d.csv"with open(processed_file_path, 'w', encoding='utf-8') as fw:cnt = 0for file_name in os.listdir(orc_dir):if not file_name.endswith('txt'):orc_file = os.path.join(orc_dir, file_name)print(orc_file)with open(orc_file, 'rb') as fr:reader = pyorc.Reader(fr)# print(str(reader.schema))# struct < id: bigint, name: string, ... >for row_tuple in reader.read():row_tuple = (str(i) for i in row_tuple)fw.write('\t'.join(row_tuple) + '\n')cnt += 1print(f"Process total {cnt} rows !")

from:python读写word、excel、csv、json文件_python word excel读写-CSDN博客

ref:数据编码和处理

这篇关于python读写word、excel、csv、json、hive orc文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:https://blog.csdn.net/pipisorry/article/details/50368044
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/509521

相关文章

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式

《C#实现将Office文档(Word/Excel/PDF/PPT)转为Markdown格式》Markdown凭借简洁的语法、优良的可读性,以及对版本控制系统的高度兼容性,逐渐成为最受欢迎的文档格式... 目录为什么要将文档转换为 Markdown 格式使用工具将 Word 文档转换为 Markdown(.

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

Java中JSON格式反序列化为Map且保证存取顺序一致的问题

《Java中JSON格式反序列化为Map且保证存取顺序一致的问题》:本文主要介绍Java中JSON格式反序列化为Map且保证存取顺序一致的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未... 目录背景问题解决方法总结背景做项目涉及两个微服务之间传数据时,需要提供方将Map类型的数据序列化为co

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

详解如何使用Python构建从数据到文档的自动化工作流

《详解如何使用Python构建从数据到文档的自动化工作流》这篇文章将通过真实工作场景拆解,为大家展示如何用Python构建自动化工作流,让工具代替人力完成这些数字苦力活,感兴趣的小伙伴可以跟随小编一起... 目录一、Excel处理:从数据搬运工到智能分析师二、PDF处理:文档工厂的智能生产线三、邮件自动化: