python处理数据

CSV数据处理

csv文件格式

逗号分隔符(csv),有时也称为字符分隔值,因为分隔字符也可以不是逗号,其文件以纯文本的形式存储表格数据(数字和文本)。
纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。
csv文件由任意数目的记录组成,记录间以某种换行符分割;每条记录由字段组成,字段间的分隔符是其他字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。

csv数据格式

27,20,14,15,14,12,94,64,37,1015,1013,1009,7,5,2,21,8,35,0.00,152

另外,csv文件可以直接用excel或者类似软件打开,样子都是我们常见的表格形式。

常用读取数据方法

import codecs
lineText = list()
with codecs.open("test.csv",encoding="utf-8") as f:
    for line in f.readlines():
        print (line.split(","))            #以列表形式,打印每一行的数据。
        lineText.append(line.split(","))
    print (lineText)               #把上面所有行作为元素数据,存入一个列表中。

处理csv格式数据

import codecs
import csv
fileName = "test.csv"
with codecs.open(fileName) as fcsv:
    linecsv = csv.reader(fcsv)
    rows = [row for row in linecsv]
    print (rows)

excel数据处理

python提供有第三方库来支持excel的操作,python处理excel文件用的第三方模块库,有xlrd、xlwt、xluntils和pyExcelerator,除此之外,python处理excel还可以用win32com和openpyxl模块.我们主要用xlrd、xlwt、xluntils这三个模块,pyExcelerator模块偶尔也会用。

xlrd    只能进行读取excel文件,没法进行写入文件;
xlwt    可以写入文件,但是不能在已有的excel的文件上进行修改;
xluntils    可以在已有的excel文件上进行修改;
pyExcelerator    与xlwt类似,也可以用来生成excel文件

相关模块安装

pip install xlrd
pip install xlwt
pip install xlutils
pip install pyExcelerator

按行读取表数据

import xlrd
def readExcel():
    data = xlrd.open_workbook(‘test.xlsx‘)
    table = data.sheets()[0]         # 打开第一张表
    nrows = table.nrows          # 获取表的行数
    for i in range(nrows):          # 循环逐行打印
        print(table.row_values(i))      #通过row_values来获取每行的值

if __name__ == ‘__main__‘:
    readExcel()

按列读取表数据

import xlrd
data = xlrd.open_workbook("whsc.xlsx")
table2 = data.sheet_by_name("域名")       #sheet标签页的名称
for col in range(table2.ncols):
    print (table2.col_values(col))

创建excel文件并写入内容

import xlwt
excel = xlwt.Workbook()
#创建3个表
sheet1 = excel.add_sheet("sheet1")
sheet2 = excel.add_sheet("sheet2")
sheet3 = excel.add_sheet("sheet3")
#只在第一个表sheet1里写数据,如下:
sheet1.write(0,0,"hello world1", cell_overwrite_ok=True)
sheet1.write(1,0,"hello world2", cell_overwrite_ok=True)
sheet1.write(2,0,"hello world3", cell_overwrite_ok=True)
#第一个是行,第二个是列,第三个是内容,第二个参数用来确认同一个cell单元是否可以重设值。
excel.save("hello.xlsx")
print("创建hello.xlsx完成")

使用样式、字体等效果

import xlwt
excel = xlwt.Workbook()
#创建3个表
sheet1 = excel.add_sheet("sheet1")
sheet2 = excel.add_sheet("sheet2")
sheet3 = excel.add_sheet("sheet3")
#初始化样式
style = xlwt.XFStyle()
#为样式创建字体
font = xlwt.Font()
font.name = ‘Times New Roman‘   #指定字体名称
font.bold = True              #是否加粗
#设置样式的字体
style.font = font
#使用样式
sheet3.write(0,1,‘some bold Times text‘,style)
#保存该excel文件,有同名文件时直接覆盖
excel.save(‘hello.xlsx‘)
print(‘创建hello.xlsx文件完成!‘)

文件转换成pdf格式

在工作中,会遇到把html文件转换成pdf文件,转换成pdf有三种方法。
python给我们提供了pdfkit这个模块,直接安装使用就可以了。

安装该模块

pip install pdfkit

简单例子

import pdfkit
pdfkit.from_file("hello.html", 1.pdf)  # 网页转换成pdf(直接把url转换成pdf文件)
pdfkit.from_url("www.baidu.com", 2.pdf)  # Html转换成pdf
pdfkit.from_string("hello world", 3.pdf) # 字符串转换成pdf

抓取apelearn上的教程,并抓换成pdf

import os
import re
import pdfkit
import requests

if not os.path.exists("aminglinux"):
    os.mkdir("aminglinux")  # 创建一个目录来存放生成的pdf文件

os.chdir("aminglinux")  # 切换到创建好的目录

url = "http://www.apelearn.com/study_v2/"
s = requests.session()
text = s.get(url).text
reg = re.compile(r‘<li class=\"toctree-l1\"><a class=\"reference internal\" href=\"(.*)\">.*<\/a><\/li>‘)
result = reg.findall(text)
res = list(set(result))

for i in res:
    purl = "{0}{1}".format(url, i)
    print (purl)
    pdfFileName = i.replace("html", "pdf")
    print (pdfFileName)
    config = pdfkit.configuration(wkhtmltopdf=r"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe")
    try:
        pdfkit.from_url(purl, pdfFileName, configuration=config)
    except:
        continue

结果:

chapter1.pdf
chapter2.pdf
chapter3.pdf
chapter4.pdf
chapter5.pdf
......
......

注意:如果使用的是windows需要安装一个wkhtmltopdf驱动,否则会报错。

原文地址:https://www.cnblogs.com/yangjian319/p/9157977.html

时间: 2024-10-12 03:49:55

python处理数据的相关文章

Python模拟数据工具哪些比较好用

今天给大家推荐两款基本的Python模拟数据工具:mock和pytest monkeypatch. 为什么要模拟数据? 我们的应用中有一些部分需要依赖外部的库或对象.为了隔离开这部分,我们需要代替这些外部依赖,因而就用到了模拟数据.我们模拟外部的API来产生特定的行为,比如说返回符合之前定义的恰当的返回值. 模拟函数 我们有一个function.py的模块: 然后我们来看下如何将其与Mock库结合使用的: 这里发生了什么?1-4行是为了兼容python 2和3来引入的代码,在python 3中m

Python学习——数据排序方法

Python对数据排序又两种方法: 1. 原地排序:采用sort()方法,按照指定的顺序排列数据后用排序后的数据替换原来的数据(原来的顺序丢失),如: >>> data1=[4,2,6,432,78,43,22,896,42,677,12] >>> data1.sort() >>> data1 #原来的顺序被替换 [2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] 2. 复制排序:采用sorted()内置函数,按照

python&amp;php数据抓取、爬虫分析与中介,有网址案例

最近在做一个网络爬虫程序,后台使用python不定时去抓取数据,前台使用php进行展示 网站是:http://se.dianfenxiang.com python&php数据抓取.爬虫分析与中介,有网址案例,布布扣,bubuko.com

用 Python 排序数据的多种方法

用 Python 排序数据的多种方法 目录 [Python HOWTOs系列]排序 Python 列表有内置就地排序的方法 list.sort(),此外还有一个内置的 sorted() 函数将一个可迭代对象(iterable)排序为一个新的有序列表. 本文我们将去探索用 Python 做数据排序的多种方法. 排序基础 简单的升序排序非常容易:只需调用 sorted() 函数,就得到一个有序的新列表: 你也可以使用 list.sort() 方法,此方法为就地排序(并且返回 None 来避免混淆).

[转]python 可变数据和不可变数据解析

python 的数据类型和C不一样,有一种类型:可变类型 (mutable)和不可变类型(immutable) Python中所有变量都是值的引用,也就说变量通过绑定的方式指向其值. 而这里说的不可变指的是值的不可变. 对于不可变类型的变量,如果要更改变量,则会创建一个新值,把变量绑定到新值上,而旧值如果没有被引用就等待垃圾回收.不可变的类型还有一个特性,就是可以计算其hash值,这样才能进一步作为字典的key.可变类型数据对对象操作的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请

Python大数据与机器学习之NumPy初体验

本文是Python大数据与机器学习系列文章中的第6篇,将介绍学习Python大数据与机器学习所必须的NumPy库. 通过本文系列文章您将能够学到的知识如下: 应用Python进行大数据与机器学习 应用Spark进行大数据分析 实现机器学习算法 学习使用NumPy库处理数值数据 学习使用Pandas库进行数据分析 学习使用Matplotlib库进行Python绘图 学习使用Seaborn库进行统计绘图 使用Plotly库进行动态可视化 使用SciKit-learn处理机器学习任务 K-Means聚

MySQL实验准备(二)--Python模拟数据(MySQL数据库)

Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看<MySQL实验准备(一)--环境准备>文档 实验脚本 通过对一个简单表的脚本插入和查询模拟,后面能 举一反三,完成多张表的多表插入,多线程的多表插入,多线程查询,和多线程的join查询. 数据库的表结构 mysql> show create table zdemo.student; +----

HTTP协议与使用Python获取数据并写入MySQL

一.Http协议 二.Https协议 三.使用Python获取数据 (1)urlib (2)GET请求 (3)POST请求 四.爬取豆瓣电影实战 1.思路 (1)在浏览器中输入https://movie.douban.com/j/search_tags?type=movie会得到显示的电影的分类标签,下面以"热门"为例 {"tags":["热门","最新","经典","可播放",&quo

谈谈Python实战数据可视化之pygal模块(实战篇)

前沿 通过上一节谈谈Python实战数据可视化之pygal模块(基础篇)的学习,我们对pygal模块的使用有了初步的了解,本节将以实战项目来加深pygal模块的使用.从网上可以下载JSON格式的人口数据,并使用json模块来处理它们,pygal模块提供了一个适合初学者使用的地图创建工具,我们将使用它来对人口数据进行可视化,以探索全球人口的分布情况.针对JSON格式的人口数据文件,可以通过谈谈Python实战数据可视化之matplotlib模块(实战篇)章节的配套资源来下载.对于本人在学习和编码过

《零起点Python大数据与量化交易》中文PDF+源代码

下载:https://pan.baidu.com/s/1JWmwMFHZV0mYAyAl-HkPyw 更多资料:http://blog.51cto.com/3215120 <零起点Python大数据与量化交易>中文PDF+源代码中文PDF,带目录和书签,655页,文字可以复制粘贴.配套源代码. 本书是国内关于Python大数据与量化交易的原创图书. 如图: 原文地址:http://blog.51cto.com/4820691/2311108