python 文件处理

Python 中的文件处理 在本节中,我们将讨论核心文件操作,如打开文件、关闭文件、从文件读取、写入文件、使用上下文管理器进行文件管理,以及使用Python标准库用一个句柄打开多个文件。如果是用文本模式打开文件,还可以在打开文件时指明文件中字符的编码。如果文件存在,该选项将覆盖文件,文件中的任何现有内容都将被销毁。可以看到,读出的内容是按照打开文件的先后顺序排列的。一旦关闭文件,操作系统将释放与文件实例和锁(如果有的话)相关的资源,这是任何编程语言的最佳实践。打开文件,然后使用下面任何其中一种读取方法,即可读取文件。 阅读详情

1. Pillow (PIL)

场景: 使用Pillow进行图像处理,包括图像裁剪、旋转和添加水印。

from PIL import Image, ImageDraw, ImageFont
# 打开图像
image = Image.open("example.jpg")
# 裁剪图像
cropped_image = image.crop((100, 100, 400, 400))
cropped_image.save("cropped_example.jpg")
# 旋转图像
rotated_image = image.rotate(90)
rotated_image.save("rotated_example.jpg")
# 添加水印
draw = ImageDraw.Draw(image)
font = ImageFont.truetype("arial.ttf", 36)
draw.text((10, 10), "Sample Watermark", font=font, fill=(255, 0, 0, 128))
image.save("watermarked_example.jpg")

2. imageio

场景: 使用imageio读取和写入多种格式的图像,并创建一个简单的动画GIF。

import imageio
import numpy as np
# 读取图像
image = imageio.imread('example.jpg')
print("Image shape:", image.shape)
# 写入图像
imageio.imwrite('output.png', image)
# 创建动画GIF
images = []
for i in range(10):
    images.append(np.random.randint(0, 255, (100, 100, 3), dtype=np.uint8))
imageio.mimsave('animation.gif', images, duration=0.5)

3. scikit-image

场景: 使用scikit-image进行图像增强和特征检测。

from skimage import io, exposure, feature
import matplotlib.pyplot as plt
# 读取图像
image = io.imread("example.jpg", as_gray=True)
# 直方图均衡化
equalized_image = exposure.equalize_hist(image)
# Canny边缘检测
edges = feature.canny(equalized_image, sigma=3)
# 显示结果
fig, ax = plt.subplots(nrows=1, ncols=3, figsize=(12, 4))
ax[0].imshow(image, cmap='gray')
ax[0].set_title('Original Image')
ax[0].axis('off')
ax[1].imshow(equalized_image, cmap='gray')
ax[1].set_title('Equalized Image')
ax[1].axis('off')
ax[2].imshow(edges, cmap='gray')
ax[2].set_title('Canny Edges')
ax[2].axis('off')
plt.show()

4. opencv-python

场景: 使用OpenCV进行人脸检测和图像模糊处理。

import cv2
# 读取图像
image = cv2.imread('example.jpg')
# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 加载预训练的人脸检测模型
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
# 绘制矩形框并模糊处理
for (x, y, w, h) in faces:
    # 绘制矩形框
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)
    # 模糊处理
    face = image[y:y+h, x:x+w]
    blurred_face = cv2.GaussianBlur(face, (99, 99), 30)
    image[y:y+h, x:x+w] = blurred_face
# 显示结果
cv2.imshow('Face Detection and Blurring', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

5. pytesseract

场景: 使用pytesseract进行光学字符识别(OCR)。

import pytesseract
from PIL import Image
# 配置Tesseract路径
pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'
# 读取图像
image = Image.open('text_image.png')
# 进行OCR
text = pytesseract.image_to_string(image,)
print("Extracted Text:", text)

6. pdfminer.six

场景: 使用pdfminer.six解析PDF文档并提取文本。

from pdfminer.high_level import extract_text
# 读取PDF并提取文本
text = extract_text("example.pdf")
print("Extracted Text:", text)

7. reportlab

场景: 使用ReportLab生成带有表格和图表的PDF文档。

from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
# 创建PDF文档
doc = SimpleDocTemplate("report.pdf", pagesize=letter)
# 定义样式
styles = getSampleStyleSheet()
# 创建内容
data = [
    ['Name', 'Age', 'Country'],
    ['Alice', 30, 'USA'],
    ['Bob', 25, 'Canada'],
    ['Charlie', 35, 'UK']
]
table = Table(data)
table.setStyle(TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('FONTSIZE', (0, 0), (-1, 0), 14),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
    ('GRID', (0, 0), (-1, -1), 1, colors.black)
]))
# 添加段落
content = [Paragraph("Report Title", styles['Heading1']), table]
# 生成PDF
doc.build(content)

8. WeasyPrint

场景: 使用WeasyPrint从HTML和CSS生成PDF文档。

from weasyprint import HTML, CSS

# HTML和CSS内容
html_content = """
<!DOCTYPE html>
<html>
<head>
    <title>Sample Report</title>
</head>
<body>
    <h1>Report Title</h1>
    <p>This is a sample report generated using WeasyPrint.</p>
    <table style="border: 1px solid black; border-collapse: collapse;">
        <tr><th>Name</th><th>Age</th><th>Country</th></tr>
        <tr><td>Alice</td><td>30</td><td>USA</td></tr>
        <tr><td>Bob</td><td>25</td><td>Canada</td></tr>
        <tr><td>Charlie</td><td>35</td><td>UK</td></tr>
    </table>
</body>
</html>
"""

css_content = """
body {
    font-family: Arial, sans-serif;
}
h1 {
    color: #333;
}
table, th, td {
    border: 1px solid black;
    padding: 5px;
}
th {
    background-color: #f2f2f2;
}
"""

# 生成PDF
HTML(string=html_content).write_pdf('weasyprint_report.pdf', stylesheets=[CSS(strin

9. PyPDF2

场景: 使用PyPDF2合并多个PDF文件并添加水印。

import PyPDF2
# 合并多个PDF文件
pdf_writer = PyPDF2.PdfFileWriter()
# 读取第一个PDF文件
with open("file1.pdf", "rb") as file:
    pdf_reader = PyPDF2.PdfFileReader(file)
    for page_num in range(pdf_reader.numPages):
        page = pdf_reader.getPage(page_num)
        pdf_writer.addPage(page)
# 读取第二个PDF文件
with open("file2.pdf", "rb") as file:
    pdf_reader = PyPDF2.PdfFileReader(file)
    for page_num in range(pdf_reader.numPages):
        page = pdf_reader.getPage(page_num)
        pdf_writer.addPage(page)
# 添加水印
watermark = PyPDF2.PdfFileReader(open("watermark.pdf", "rb"))
for page_num in range(pdf_writer.getNumPages()):
    page = pdf_writer.getPage(page_num)
    page.mergePage(watermark.getPage(0))
# 保存合并后的PDF文件
with open("merged_with_watermark.pdf", "wb") as output_file:
    pdf_writer.write(output_file)

10. PyMuPDF (fitz)

场景: 使用PyMuPDF提取PDF中的文本和图像。

import fitz  # PyMuPDF
# 读取PDF文件
doc = fitz.open("example.pdf")
# 提取文本
for page_num in range(len(doc)):
    page = doc.load_page(page_num)
    text = page.get_text("text")
    print(f"Page {page_num + 1} Text:\n{text}\n")
# 提取图像
for page_num in range(len(doc)):
    page = doc.load_page(page_num)
    images = page.get_images(full=True)
    for img_index, img in enumerate(images):
        xref = img[0]
        base_image = doc.extract_image(xref)
        image_bytes = base_image["image"]
        image_ext = base_image["ext"]
        with open(f"page{page_num+1}_img{img_index+1}.{image_ext}", "wb") as image_file:
            image_file.write(image_bytes)

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

Python中处理JSON文件 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和编写,同时也易于机器解析和生成。在Python中,处理JSON数据是一项常见且重要的任务,特别是在数据科学、网络编程和API交互等领域。本文将深入探讨Python中如何处理JSON文件,包括读取、解析、修改和写入JSON数据。JSON格式由键值对组成,其中键总是字符串类型,而值可以是字符串、数字、数组(列表)、布尔值或其他嵌套的JSON对象。 阅读详情

相关推荐

Python文件处理

应用程序运行过程中产生的数据最先都是存放于内存中的,若想永久保存下来,必须要保存于硬盘中。应用程序若想操作硬件必须通过操作系统,而文件就是操作系统提供给应用程序来操作硬盘的虚拟概念,用户或应用程序对文件的操作,就是向操作系统发起调用,然后由操作系统完成对硬盘的具体操作。

shiyaopeng11的博客 562

【Python任务导向】文件读写(with语法、os模块、缓存区概念、偏移量概念)

【Python】高级笔记第一部分:文件读写和正则表达式 全系列导航见:Python教程整理 ????碎碎念???? Hello米娜桑,这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等,点个关注吧,持续高质量输出中。 ????唠嗑QQ群:兔叽的魔术工房 (942848525) ⭐️B站账号:杨丝儿今天也在科学修仙(UP主跨站求个关注) ????数据处理概述 数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意

白拾的博客 1089

python中最基础的文件操作,你都懂吗?

今天讲一下python中的文件操作,虽然在开发中我们很少操作文件,大部分的需求基本上是在数据库中完成,因为数据库的数据更安全,操作效率高,操作文件就面临着我们需要自己管理文件,但是我们平常测试或者做一些小的demo的时候需要读取数据,有时候我们做一些办公自动化,读取word,Excel,txt 什么的还是很方便的,并且文件的读写也是基本的技能,必须要学习下,总结下更好记忆。对于常用的api 我都打上了小心心,记住就好了 1、打开文件 api 很简单,只要使用open 就可以了 with open(

我是香菜 1万+

Python文件的操作处理,一看就会

在Python程序中可以通过内置函数open()来打开一个文件程序中,并用相关的方法读或写文件文件中的内容以供程序的处理和使用,同时可以将文件看作Python中的一种数据类型。注意:有个很像的 readlines()方法 ret = f.readlines() #返回的是一个列表,且返回的是你读取的字符所在行的整个内容,但是当数据较大时,这样的用法会很占用内存。以读的方式:文本的方式, 二进制的方式。图片,音频,视频或者其他的非文本的文件。以写的方式:文本的方式,二进制的方式。

主要分享测试的学习资源,帮助快速了解测试行业,帮助想转行、进阶、小白成长为高级测试工程师。 3154

基于STM32的多参数水质检测仪系统 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6主控,搭配pH、TDS、浊度、水温四大核心水质检测模块,完整实现了多参数水质检测仪的全流程开发,从多通道ADC采集、数字滤波、温度补偿、专业校准、阈值报警到人机交互,全流程无跳步保姆式拆解,配套逐行注释可直接编译的开源代码,新手跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 484

pycharm添加Anaconda解释器显示不出来

因为我之前下载的是pycharm最新版本2024.1的,所以我抱着试一试的心态卸载重装了2021.3.3的,创建新文件的时候立刻就自己识别好了conda环境。就是图中画圈的地方,之前一直显示为python的图标,但是再Python Interpreter后面跟的路径确实是我下载anaconda的地方。另外一种方法就是使用Virtualenv Environment方式配置,但是我的pycharm还是没有识别出conda的图标。首先是这位的方法,先添加系统解释器,再重启,但是我的图标还是python。

2202_75803271的博客 4006

python基础篇-文件处理

python之文件处理

清微的博客 1201

AI训练加速30%!用numactl玩转多显卡绑核的隐藏技巧

本文深入探讨了如何利用Linux系统的numactl工具,通过精确的NUMA绑核策略优化多GPU AI训练性能。文章详细解析了NUMA架构对性能的影响,提供了从拓扑探查、命令实战到多卡脚本化部署的完整指南,并分享了性能验证与常见陷阱,帮助开发者实现高达30%的训练加速。

web99的专栏 448

【Python语言基础】23、文件处理

Python中的文件处理

Tiger_shl的博客 977

使用DDR4控制器实现多通道数据读写

这种高带宽对于大量的数据的应用非常重要。对于Controller/PHY Mode 的选择,我们使用Controller + PHY模式,Xilinx UltraScale/UltraScale+等高端FPGA通常包含硬核PHY,选择Controller + PHY模式可直接利用硬核,降低功耗和延迟,并且此模式的开发更易上手。在Basic页面下,首先勾选上AXI4 Interface选项,我们选用的内存接口速度为2133MHz的ddr4芯片,由于双沿触发,频率为1066MHz,那么周期应为938ps。

weixin_38828382的博客 1364

从SPICE到电磁场:非线性器件在CST场路协同仿真中的建模艺术

本文深入探讨了非线性器件在CST场路协同仿真中的建模技术,重点分析了SPICE模型与电磁场仿真的集成方法。通过对比线电流模型和面电流模型的优缺点,结合实际案例展示了二极管阵列在电磁散射调控中的应用,为工程师提供了优化仿真精度与效率的实用技巧。

pandas7gardener的博客 198

python处理csv文件

​ csv⽂件其实就是⽂本⽂件,遵循了⼀定的格式,常⻅的csv⽂件⼀般是⽤逗号来隔开列,⽤换⾏符隔开不同的⾏,注意这⾥的符号都是英⽂符号。我们可以直接⽤open函数来打开csv⽂件;本实验使用csv文件(example.csv)分享:https://osswangting.oss-cn-shanghai.aliyuncs.com/python/example.csv。

wt334502157的博客 1万+

跟着Synopsys报告,一步步拆解车规芯片FMEDA计算(含公式与避坑点)

本文详细解析了车规芯片FMEDA计算的全流程,基于Synopsys报告拆解实战指南,涵盖基础失效率建模、安全机制效能评估及安全指标合成等关键步骤。通过公式解析、数据准备清单和避坑点分享,帮助工程师掌握ISO26262标准下的硬件量化分析技术,提升车载系统设计可靠性。

weixin_30460489的博客 195

用python处理各种文件

处理表格等常用文件

hutaotaotao的博客 1377

【UG\NX二次开发】使用内部函数展开和折叠工序导航器

NX二次开发-群精选」专栏收录了那些曾散落在聊天对话框里的精彩的知识分享,这都是被遗落的宝贵财富。让我们一起向大佬学习,充满激情地进步,不断超越自己。底部联系方式,欢迎您加入一起交流。​下次一定。

王牌飞行员_里海的博客 820

【2025最新版】ABAP 开发百科全书专栏文章目录(上)

本文汇总了一系列SAP ABAP技术文章,内容涵盖实用技巧合集、函数式编程实践(如Currying、reduce应用)、设计模式实现(如Visitor、Singleton)、动态代理与Mock技术、性能优化方案(如Lazy Loading)、日期处理与内存管理,以及ABAP与JavaScript的编程范式对比。还涉及CDS视图、Fiori字段追踪、单元测试优化等实战经验,深入剖析了ABAP底层机制(如Internal Session、Function Module实现原理),并提供了多种反模式改进方案。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2475

python文件处理

python文件处理

810cheng 1323

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

python如何处理文件

python读写文件

游客520 741

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

关于python对文件的处理_关于Python中文件处理的所有知识

Python,这是StackOverflow调查结果显示的2018年无可争议的最苛刻的编程语言。在所有原因中,包括数据科学、机器学习、简短的语法样式化等等,最显著的特点是文件处理Python,这是StackOverflow调查结果显示的2018年无可争议的最苛刻的编程语言。在所有原因中,包括数据科学、机器学习、简短的语法样式化等等,最显著的特点是文件处理。所有这些对文件的写入和读取都可以通过Pyt...

weixin_39897749的博客 255

Python中的文件处理–为初学者学习Python文件处理

Python文件处理操作Python文件处理操作(也称为Python I / O)处理两种类型的文件。他们是:文字档二进制文件即使两种文件类型在表面上看起来相同,它们对数据的编码也不同。...

qqqqqkmbnjjhb的专栏 2103

python对txt文件处理_python 数据处理 对txt文件进行数据处理

数据:对txt文件进行数据处理:txt_file_path = "basic_info.txt"write_txt_file_path = "basic_info1.txt"def write_txt_file():if os.path.exists(txt_file_path) is False:returnwith open(txt_file_path,'r') as r_file:for r...

weixin_34243541的博客 3960

【Python基础】Python文件处理

​ 在Python中,文件处理是一项非常重要的技能。无论是从文件中读取数据,还是将数据写入文件,Python都提供了简单而强大的内置函数和库来支持这些操作。​ 本文将详细介绍Python中的文件处理基础,包括文件的打开、读取、写入以及一些高级操作。什么是Python?Python是由荷兰人吉多·范罗苏姆于1990年初设计的一门高级编程语言,该语言应用领域非常广泛,尤其在数据科学、人工智能、游戏开发等领域,它已经成为最受欢迎的程序设计语言之一,非常适合新手学习。

分享是一种境界,勤于分享,乐于分享! 1486

Python处理Excel文件

Python在处理Excel文件方面提供了丰富的工具和库,无论是使用pandas还是openpyxl,都可以实现高效、准确的数据处理。pandas更侧重于数据处理和分析,而openpyxl则更注重对Excel文件本身的操作。根据具体需求选择合适的工具库,可以大大提高数据处理的效率和准确性。博主:Python老吕优快云网站为我们搭建了一个如此卓越的学习平台,使我们有机会分享知识与经验。在这本《跟老吕学Python·新手》中,我们致力于为编程新手提供一个全面、易懂的起点。

Python老吕的博客 1738

python如何处理文件_Python如何处理文件的?

众所周知,Python是编程语言的一种,利用Python可以做很多的文件处理。那么Python如何处理文件的?有时,组织文件可能需要的不仅仅是了解其扩展名。例如,获取所有文件均为同一类型的目录。.pdf,.doc,.mp4等。假设您有一个包含幻灯片的文件夹(.ppt)。在这种情况下,您刚刚收到了大量的演讲文件,但要阅读它们并不容易。因此,他们没有为第一堂课准备一张包含所有内容的幻灯片,而是将它们分...

weixin_33465310的博客 119

【Python】文件处理总结

【Python】文件处理总结 一,文件简介 二,文件操作 三,文件属性 四,os模块

会飞的大象 1844

python文件处理模块_python 文件处理 -- 03 文件处理模块

1.os模块1.1作用文件目录管理、进程管理1.2常用os.name--判断现在正在使用的平台。Windows--nt; Linux--posixos.getcwd()--得到当前工作的目录。os.listdir(path)--指定所有目录下所有的文件和目录名,返回list。os.remove(path)--删除指定文件os.mkdir(path [, mode=0777])--创建目录os.ma...

weixin_39540934的博客 329
上一篇: 最高月薪12.5K!他说:人生很长,万事都要有重头再来的勇气。
下一篇: 自动化测试工具选型
字节自动化测试
博客等级 码龄6年 7034粉丝 1810原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值