今天开始往后都,用python3来写脚本

1.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          (          "sl_original_live.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           =           "sl_original_live.csv"         
          with codecs.          open          (fileName) as fcsv:         
                    linecsv           =           csv.reader(fcsv)         
                    rows           =           [row           for           row           in           linecsv]         
                    print           (rows)

以上了解即可。



2.excel数据处理

python 提供有第三方库来支持excel的操作,python处理excel文件用的第三方模块库,有xlrd、xlwt、xluntils和pyExcelerator,

除此之外,python处理excel还可以用win32com和openpyxl模块.

我们主要用xlrd、xlwt、xluntils这三个模块,pyExcelerator模块偶尔也会用:

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

xlrd 只能进行读取excel文件,没法进行写入文件;

xlwt 可以写入文件,但是不能在已有的excel的文件上进行修改;

xluntils 可以在已有的excel文件上进行修改;

pyExcelerator 与xlwt类似,也可以用来生成excel文件


读取表单数据:

举例:按行取数据

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文件(xlwt无法修改原有文件)

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完成"          )

效果如下:

python 字符串逗号分隔转数组 python把用逗号分隔的数据_数据


举例:字体效果

使用样式,字体类型、加粗等效果:

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文件完成!'          )

效果如下:

python 字符串逗号分隔转数组 python把用逗号分隔的数据_python 字符串逗号分隔转数组_02



举例:处理超链接

import           codecs         
          import           xlwt         
          book           =           xlwt.Workbook()         
          sheet_index           =           book.add_sheet(          'index'          )         
          line          =          0         
          for           i           in           range          (          9          ):         
                    link           =           'HYPERLINK("{0}.txt", "{1}_11111")'          .          format          (i, i)         
                    #{0}.txt是要链接的文件,{1}_11111是链接文件的内容         
                    sheet_index.write(i,           0          , xlwt.Formula(link))         
                    #第一个行号,第二个列号,第三个是写入内容link,内容里面超链接         
          book.save(          'simple2.xlsx'          )         
          for           i           in           range          (          0          ,           9          ):         
                    file           =           str          (i)           +           ".txt"         
                    with codecs.          open          (          file          ,           'w'          ) as f:         
                    f.write(          str          (i)          *          10          )

效果如下:

python 字符串逗号分隔转数组 python把用逗号分隔的数据_字段_03


3.HTML文件转化成PDF文件

转换成pdf的三种方法:

在工作中,会遇到把html文件转换成pdf文件

python给我们提供了pdfkit这个模块,直接安装使用就可以了

下面就下来介绍一个pdfkit模块的几种用法

首先,我们安装该模块:

pip           install           pdfkit


1.网页转换成pdf(直接把url转换成pdf文件)

import           pdfkit         
          pdfkit.from_url(          'http://'          ,           'out1.pdf'          )

2. Html转换成pdf

1



2


import  pdfkit



pdfkit.from_file( 'test.html' 'out2.pdf' )


3. 字符串转换成pdf

import           pdfkit         
          pdfkit.from_string(          'Hello lingxiangxiang!'          ,           'out3.pdf'          )

三种方法简单例子:

import           pdfkit         
          pdfkit.from_file(          "hello.html"          ,           1.pdf          )         
          pdfkit.from_url(          "www.baidu.com"          ,           2.pdf          )         
          pdfkit.from_string(          "hello world"          ,           3.pdf          )

即可生成pdf文件~


举例:

抓取aming的linux教程,然后制作成pdf文件

先抓取每个的网页,然后生成pdf文件

(1)查看网页源代码

python 字符串逗号分隔转数组 python把用逗号分隔的数据_python_04


(2)查看源代码内容

python 字符串逗号分隔转数组 python把用逗号分隔的数据_数据_05

和url对应规律

... ...


通过 https://regex101.com/ 正则网站,把需要的字段给过滤出来


python 字符串逗号分隔转数组 python把用逗号分隔的数据_字段_06


代码如下(未封装,回头有空封装一下):

import           os         
          import           re         
          import           pdfkit         
          import           requests         
                    
          if           not           os.path.exists(          "aminglinux"          ):         
                    os.mkdir(          "aminglinux"          )         
                    
          os.chdir(          "aminglinux"          )         
                    
          url           =          
          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


执行结果:

python 字符串逗号分隔转数组 python把用逗号分隔的数据_字段_07