首页 > 编程语言 >Python文件处理

Python文件处理

时间:2022-10-05 09:33:34浏览次数:56  
标签:文件 img Python 处理 import path 识别 open picfile

Excel

打开csv,去重,保存到excel

df = pd.read_csv("newhouse.csv",names=['name','xzqy','wylx',······,'state'])
df = df.drop_duplicates()
df.to_excel("newhouse.xlsx",index=False)

找到文件夹下所有csv文件,遍历读取并concat合并

from pathlib import Path
files = Path(r"D:\菜J学Python\数据分析\蛋壳公寓").glob("*.csv")
dfs = [pd.read_csv(f) for f in files]
df = pd.concat(dfs)
df.head()

文件目录

遍历当前目录下所有文件

import os
file_list = os.walk("./")
for dir_path,dirs,files in file_list:
    for f in files:
        file_path = os.path.join(dir_path,f) #重构文件路径
        print(file_path)

判断文件存在

path.exists(outfile)

拼接路径

path.join(outdir, os.path.basename(picfile))

PDF

PDF转Text

import pdfplumber
with pdfplumber.open("兴业B信托项目风险管理研究.pdf") as p:
	for i in range(75):
        page = p.pages[i]
        textdata = page.extract_text()
        data = open("text.text", "a")
        data.write(textdata)

PDF转Word

import pdfplumber
from docx import Document
with pdfplumber.open("研究.pdf") as p:
	page = p.pages[2]
    textdata = page.extract_text()
    document = Document()  #新建一个空白的word文档
    content = document.add_paragraph(textdata)  #在文档中添加正文段落,将变量textdata导进去
    document.save("word.docx")  #保存文档docx,命名为word

PDF提取表格

import pdfplumber
from openpyxl import Workbook
with pdfplumber.open("兴业B信托项目风险管理研究.pdf") as p:
	workbook = Workbook()  #新建空白Excel工作簿
    sheet = workbook.active  #激活sheet
    for i in range(68,75):  #遍历69页-75页
    page = p.pages[i]
    table = page.extract_table() #提取表格数据
    for row in table:  #遍历所有行
        sheet.append(row) #按行追加写入数据
        workbook.save("Excel.xlsx") #保存文件,命名为Excel
        i += 1
        print("第%d页PDF提取完成"%i) #提示提取进度

图片

调整原始图片大小

 def convertimg(picfile, outdir):
 	img = Image.open(picfile)
    width, height = img.size
    while (width * height > 4000000):  # 该数值压缩后的图片大约两百多k         width = width // 2   # '//'表示整数除法,例5//2=2
    	height = height // 2
        new_img = img.resize((width, height), Image.BILINEAR)   #重置图片大小和质量
        new_img.save(path.join(outdir, os.path.basename(picfile))) 

识别图片文本

  • 利用百度AI接口
# 利用百度api识别文本,并保存提取图片中的文字
def baiduOCR(picfile, outfile):
	filename = path.basename(picfile) #将图片路径赋值给filename
    APP_ID = '你的APP_ID'  # 刚才获取的 ID,下同
    API_KEY = '你的API_KEY'
    SECRECT_KEY = '你的SECRECT_KEY'
    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)
    i = open(picfile, 'rb') #以二进制只读方式打开文件
    
	img = i.read()  #读取图片
    print("正在识别图片:\t" + filename)
    message = client.basicGeneral(img)  # 通用文字识别,每天50000次免费
    #message = client.basicAccurate(img)   # 通用文字高精度识别,每天500次免费
    i.close() #关闭文件

输出识别结果

 # 文本识别结果输出为txt
 with open(outfile, 'a+') as fo:
 	fo.writelines("+" * 60 + '\n')   #分隔线,60个+表示
    fo.writelines("识别图片:\t" + filename + "\n" * 2)  #正在识别的图片名,并空两行
    fo.writelines("文本内容:\n")
    # 输出文本内容
    for text in message.get('words_result'):  #words_result识别结果数组,类型为array[]
    	fo.writelines(text.get('words') + '\n')  #words识别结果字符串
        fo.writelines('\n' * 2)
        print("文本导出成功!")

遍历所有图片

import glob
for picfile in glob.glob("picture/*"):  #遍历原始图片存放的文件夹
	convertimg(picfile, outdir)  #调整原始图片

标签:文件,img,Python,处理,import,path,识别,open,picfile
From: https://www.cnblogs.com/z5onk0/p/16755076.html

相关文章

  • Python数据处理
    PandasSeries一列带索引的数据s=pd.Series(np.random.randn(5),name='Helloworld')DataFrame二维数据,多组Series的集合df=pd.read_excel('GDP.xlsx')重......
  • Python可视化
    地图可视化pyecharts绘制各省市GDPfrompyecharts.globalsimportThemeType#引入主题Map(init_opts=opts.InitOpts(width="1000px",height="600px",theme=ThemeTyp......
  • python5-eg
    1实例012programmer_1='程序员甲:搞IT太辛苦了,我想换行......怎么办?'3programmer_2='程序员乙:敲一下回车键'4print(programmer_1+'\n'+programmer_2)实......
  • Python 中四舍五入的方法,你真的会吗
    Python的四舍五入,还真有点小麻烦。1、使用round大多数情况下,我们会使用round来保留小数,但这并不符合我们在数学知识里的规则。round(number[,ndigits])round()......
  • 【笨方法学python】ex18 - 命名、变量、代码、函数
    代码如下:点击查看代码#-*-coding:utf-8--*-#命名、变量、代码、函数#thisoneislikeyourscriptswithargvdefprint_two(*args): arg1,arg2=args pri......
  • python装饰器进阶指南
    前言最近一有时间就在整理自己常用的代码片段,并做成了私人pip包,正好整理到了装饰器的部分,所以就想着写篇文章来总结一下。写这篇文章的目的是为了让大家对装饰器有一个更......
  • 【笨方法学python】ex17 - 更多文件操作
    代码如下:点击查看代码#-*-coding:utf-8--*-#更多文件操作fromsysimportargvfromos.pathimportexists#exists模块:将文件名字符串作为参数,如果文件存在,......
  • 【笨方法学python】ex16 - 读写文件
    代码如下:点击查看代码#-*-coding:utf-8--*-#读写文件#close-关闭文件(保存)。#read-读取文件内容,结果可赋值给一个变量。#readline-读取文本文件中的一......
  • python的入门TCP编程
    一、创建TCP服务器创建TCP服务器的流程:使用socket创建一个套接字使用bind绑定IP和端口使用listen让套接字变成可以被动连接使用accept等待客户端的连接使用recv/send接收......
  • 【笨方法学python】ex15 - 读取文件
    代码如下:点击查看代码#-*-coding:utf-8--*-#读取文件fromsysimportargvscript,filename=argvtxt=open(filename)print"Here'syourfile%r:"%f......