编程小白的自学笔记十三(python办公自动化读写文件)

简介: 编程小白的自学笔记十三(python办公自动化读写文件)

前言

在自学笔记一的时候我已经学了文件的读写,那是学的基础,现在是开始学习办公自动化,要深入学习了。

一、什么是Python办公自动化

Python办公自动化是指通过编写程序来解决办公过程中所遇到的问题,例如 Excel、PPT、Word、邮件、文件处理、数据分析处理、爬虫等数据源,进行自动增删改查等操作,从而提高效率。

二、使用open方法读写文件

with open(‘文件名’,’w’) as f:


很好理解,w的意思就是write(写)的意思,如果文件不存在就会创建一个新文件,然后写入;如果文件已经存在,新的内容写入会覆盖原来的内容。


还有w+参数,意思是可以读写,w是只能写不能读。


with open(‘文件名’,’r’,encoding=’UTF8’) as f:


这个也很好理解,r的意思就是read(读)的意思,如果文件不存在就会报错。


这里还有一个参数a,应该是add的意思,也是写入,但是不会覆盖原内容,会在原内容后面进行追加。

三、读取内容

按照上面代码打开文件后,我们读取文件需要调用read()方法。

1、f.read()方法

f.read()方法是读取整个文件,以字符串的形式返回结果。可以加参数,例如f,read(10)表示返回前10个字符。

2、f.readline()方法

f.readline()方法是读取一行字符串,以字符串形式返回,这里也可以加参数,例如f.readline(10)表示返回改行前10个字符。


f.readline()调用一次是读取一行数据,那么怎么读取后面行数据呢?


要使用`readline()`读取文件的第二行数据,可以使用以下代码示例:

with open('file.txt', 'r') as f:
    first_line = f.readline()  # 读取第一行数据并忽略
    second_line = f.readline()  # 读取第二行数据
    print(second_line)

在这个示例中,我们打开了一个名为 "file.txt" 的文本文件,并使用只读模式('r')操作。然后,我们使用`readline()`函数两次进行读取。


第一次调用`readline()`用于读取第一行数据,但我们将其赋值给一个变量 `first_line` 并忽略它,因为我们只关心第二行数据。


第二次调用`readline()`用于读取第二行数据,并将其赋值给变量 `second_line`。然后,可以根据需要对其进行进一步处理。


最后,我们通过打印 `second_line` 将第二行的数据输出到控制台。


所以我们需要第几行的数据,我们就需要执行几次,非常不方便。


3、readlines()方法

readlines()方法是读取整个文件,以列表的形式返回。这样我们就可以通过读取列表操作拿到我们想要行的数据。

readlines()方法也是有参数的,但是很多人都理解错误,例如百度搜索到的结果:


f.readlines(50)是一个文件操作中的函数调用,它的作用是读取文件中的内容,并返回一个由每行内容组成的列表。


其中,参数50表示读取文件的行数,具体意义取决于文件的内容和结构。如果文件包含超过50行的内容,那么读取的行数将不会限制在50行,而是会读取整个文件的内容。如果文件行数不足50行,则会读取文件中的所有行。


需要注意的是,f.readlines()函数通常用于读取文本文件(以文本形式存储的文件),而不适用于二进制文件(如图片、音频、视频等)。


以下是一个示例,展示了如何使用f.readlines(68)读取文件内容到列表中:

with open('file.txt', 'r') as f:
    lines = f.readlines(50)
    for line in lines:
        print(line)

在这个示例中,文件"file.txt"被打开,并以只读模式('r')进行操作。然后,f.readlines(50)会将文件的内容读取到列表lines中,每行内容作为一个元素。接着,通过遍历该列表,可以逐行输出或处理文件的内容。

以上都是互联网给出的答案,大家可以看到,文中的解释是参数表示读取的函数,其实不然,我们试试以下代码:

import os
with open('test.txt','w') as f:
    for i in range(79):
        f.write(f'{i}'* 68)
        f.write('\n')
with open('test.txt','r',encoding='UTF8') as f:
    for line in f.readlines(79):
        print(line)


是不是应该输出79行代码,结果不是,输出结果为:

可以看到只有2行代码。其实参数的意思还是表示字符数量,但是不是每行返回最多79个字符,而是表示返回总字符大于或等于79个字符的最小行,按照代码的例子就是第一行68个字符,小于79,那么再返回一行,68+68=136,大于79了,就不在返回下一行了,所以只返回2行。


总结

Python读写文件的常用方法有以下几种:


1、使用open()函数打开文件,并指定打开模式(如'r'表示读取,'w'表示写入,'a'表示追加等)。


2、使用read()或readlines()函数读取文件内容。


3、使用write()或writelines()函数向文件中写入内容。


4、使用close()函数关闭文件。


5、使用with语句可以自动关闭文件,避免忘记关闭文件导致资源浪费。


6、在读写文件时,需要注意编码问题,尤其是在处理中文等非ASCII字符时。可以使用codecs模块来解决编码问题。


7、在读写二进制文件时,需要使用二进制模式('rb'和'wb')打开文件。


8、在读写大文件时,可以使用缓冲区来提高效率。


9、在读写文件时,需要注意文件路径的问题,尤其是在不同操作系统下路径的表示方式不同。可以使用os模块来处理文件路径。


相关文章
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
333 102
|
4月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
358 104
|
4月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
286 103
|
4月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
212 82
|
3月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
277 3
|
3月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
521 3
|
3月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
340 3
|
3月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
369 0
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的多面手
Python:现代编程的多面手
102 0
|
4月前
|
存储 人工智能 算法
Python实现简易成语接龙小游戏:从零开始的趣味编程实践
本项目将中国传统文化与编程思维相结合,通过Python实现成语接龙游戏,涵盖数据结构、算法设计与简单AI逻辑,帮助学习者在趣味实践中掌握编程技能。
446 0

推荐镜像

更多