数据分析实用python程序

1、pdf转txt

# dealPdf : pdf文件名
# path1 : pdf所在文件夹路径
# path2 : txt存放文件夹路径

# 将pdf文件转化成txt文件
def pdf_to_txt(dealPdf, path1, path2):
    # 不显示warning
    logging.propagate = False
    logging.getLogger().setLevel(logging.ERROR)
    pdf_filename = dealPdf
    device = PDFPageAggregator(PDFResourceManager(), laparams=LAParams())
    interpreter = PDFPageInterpreter(PDFResourceManager(), device)
    parser = PDFParser(open(path1 + pdf_filename, 'rb'))
    doc = PDFDocument(parser)

    txt_filename = dealPdf.split('.')[0] + '.txt'

    # 检测文档是否提供txt转换,不提供就忽略
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    else:
        with open(path2 + txt_filename, 'w', encoding="utf-8") as fw:
            # print("num page:{}".format(len(list(doc.get_pages()))))
            for i, page in enumerate(PDFPage.create_pages(doc)):
                interpreter.process_page(page)
                # 接受该页面的LTPage对象
                layout = device.get_result()
                # 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象
                # 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等
                # 想要获取文本就获得对象的text属性,
                # print(layout.__len__())
                for x in layout:
                    if isinstance(x, LTTextBox):
                        results = x.get_text()
                        print(results)
                        fw.write(results)

2、判断txt文件是否为空

# path : txt文件路径

def check(path):
    with open(path, 'r', encoding="utf-8") as f:
        txt = f.read()
        if txt == '':
            return True
        else:
            return False

3、获取txt文件每一行

# path : txt文件路径

def get_lines(path):
    with open(path, 'r', encoding="utf-8") as f:
        txt = f.readlines()
        return txt

4、获取文件夹所有文件名

import os

# path : 文件夹路径

def get_lines(path):
    files_name = os.listdir(path)
    return files_name

5、读写xlsx表格

import openpyxl

one_xlsx = openpyxl.load_workbook('E:/one.xlsx')  # 获取第一个xlsx表格
sheet_1 = one_xlsx.worksheets[0]  # 第一个sheet
sheet_2 = one_xlsx.worksheets[1]  # 第二个sheet
col_num = sheet_1.max_column  # 获取最大列
row_num = sheet_1.max_row  # 获取最大行
for i in range(1,row_num + 1):
    for j in range(1, col_num + 1):
        print(sheet_1.cell(i, j).value)  # 遍历每个格子
one_xlsx.save('E:/two.xlsx')  # 存xlsx表格

6、遍历txt每个字符

def visit(path):
    with open(path, 'r', encoding="utf-8") as f:
        txt = f.read()
        for i in range(len(txt)):
            print(txt[i])

7、字符串中字符替换

txt.replace(str1, str2) # 将txt字符串中所有字串str1替换为str2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值