Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)

这篇具有很好参考价值的文章主要介绍了Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


文件

1. 什么是文件?

我们平时所创建的变量都是保存在内存中的,我们知道如果重启应用或者重启机器,内存中的数据就会丢失。
如果想让数据能够持久化存储,就可以把数据保存到文件或者是数据库中。

比如windows上,通过后缀名可以看到常见的文件类型有:

  • 可执行文件(exe)
  • 文本文件(txt)
  • 图片文件(jpg、png)
  • office文件 (.ppt、.xlsx)

2. 文件路径

一个机器上,会存在很多文件,为了让这些文件更方便的管理和组织,往往会使用很多的“文件夹”,也就是我们平常所说的目录

为了更家准确的确定一个文件的位置,就可以使用文件路径
Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)

D:\root\PyCharm Community Edition 2022.1\bin\pycharm64.exe这就是PyCharm软件的绝对路径

  • D:表示的是盘符,不区分大小写
  • 每一个\表示一级目录
  • 在 windows中目录之间的分割符,可以用/也可以用\
  • 这里是是介绍来了绝对路径,和它对应的是相对路径,用../来表示上一级路径,./表示当前路径

3. 文件操作

要想使用文件,主要是通过文件来保存数据,在需要的时候把保存的数据读取出来
但是想要读写文件,需要先打开文件,读写完毕之后一定要记得关闭文件,防止文件资源泄露

1) 打开文件

使用内置函数open打开文件

file = open('D:/root/test.txt', 'r')
print(type(file))
# 运行结果
<class '_io.TextIOWrapper'>
  • 第一个参数是字符串,表示要打开文件路径
  • 第二个参数也是一个字符串,表示文件打开的方式,其中r表示只读,w表示按照写方式打开,a表示追加的方式打开
  • 如果文件打开成功,就会返回一个文件对象,后续的读写文件操作都是围绕着这个文件对象操作
  • 如果打开文件败(比如路径写错了或者文件压根不存在),就会抛出异常

2) 关闭文件

是用文件对象.close方法关闭已经打开的文件

file = open('D:/root/test.txt', 'r')
file.close()

使用完一个文件一定要记得及时关闭
一个程序同时打开的文件个数是存在上限的!

my_list = []
count = 0
while True:
    file = open('D:/root/test.txt', 'r')
    my_list.append(file)
    count += 1
    print(f'file{count}')

Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)

如果一直循环打开文件不关闭的话,达到一定数量就会抛出异常

注意:上面的每个文件对象都用列表保存起来了,如果不保存就不会抛出异常,因为Python内置的垃圾回收机制,会在文件对象销毁的时候自动关闭所有文件
但是垃圾回收机制不一定及时,所以写代码不要依赖垃圾回收机制

3) 写文件

  • 如果要写文件,就要以写的方式打开,把第二个参数设置为w
  • 使用write方法写数据
file = open('D:/root/test.txt', 'w')
file.write('hello world')
file.close()

Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)
用记事本打开test.txt文件就能查看被写进去的数据

  • 如果使用r方式打开文件,则写入时就会抛出异常
  • 使用w一旦打开文件 成功,就会清空文件原有的数据
  • 使用a实现“追加写入”,此时原有内容不变,写入的额内容会存在于之前文件内容的末尾
file = open('D:/root/test.txt', 'w')
file.write('hello world')
file.close()

file = open('D:/root/test.txt', 'a')
file.write('\n你好世界')
file.close()

Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)

  • 针对已经关闭 的文件对象进行写操作也会抛出异常

4) 读文件

  • 读文件需要使用r的方式打开文件
  • 使用read方法完成操作,参数表示读取几个字符,不填参数则是默认读取整个文件
file = open('D:/root/test.txt', 'r')
tmp = file.read(5)
print(tmp)
  • 如果读取文件的时候遇到编码方式报错,可以手动指定的读取文件的编码方式
file = open('D:/root/test.txt', 'r', encoding='utf8')
tmp = file.read()
print(tmp)
  • 如果是多行文本,可以使用for循环一次读取一行
file = open('D:/root/test.txt', 'r', encoding='utf8')
count = 1
for tmp in file:
    print(f'第{count}行:{tmp}', end='')
    count += 1
file.close()

  • 使用readlines直接把整个文件内容读取出来,返回一个列表,每个元素为一行
file = open('D:/root/test.txt', 'r', encoding='utf8')

lists = file.readlines()
print(lists)
print(type(lists))
file.close()
# 运行结果
['hello world\n', '你好世界\n', '测试\n', '文件\n', '读写\n', '\n', '上面是空行']
<class 'list'>

4. 使用上下文管理器

当打开文件之后,有的时候老是忘记关闭文件对象,于是Python提供了上下文管理器,来帮助程序员自动关闭文件(类似于Java的try)

  • 使用with语句打开文件
  • with内部的代码块执行完毕后, 就会自动调用关闭方法
with open('D:/root/test.txt', 'r', encoding='utf8') as file:
    lines = file.readline()
    print(lines)

上下文管理器起到的效果就是一个监控,当 with对应的代码块执行完毕后,就会自动执行 文件对象的 close方法

5. 实现文件查找工具

指定一个待搜索的文件路径,同时指定一个要搜索的文件关键字
在待搜索路径中查找是否文件名中包含这个关键字文章来源地址https://www.toymoban.com/news/detail-428064.html

  • 使用os.walk即可实现目录的递归遍历,不需要手动写递归
  • os.walk 返回一个三元组, 分别是 当前路径 , **当前路径下包含的目录名 **(多个), 当前路径下包含的文件名 (多个)

import os
path = input('请输入要搜索的绝对路径:')
keyword = input('请输入要查找的文件名的关键字:')
'''
dir_path:遍历到当前位置的绝对路径啥
dir_names:当前路径下都有哪些目录
file_names:当前目录下都有哪些文件(保存的是文件命名)
'''
for dir_path, dir_names, file_names in os.walk(path):
    for f_name in file_names:
        if keyword in f_name:
            print(f'{dir_path}/{f_name}')

到了这里,关于Python基础语法(五)—— 文件基本操作(打开、写入、关闭、查找)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【100天精通python】Day19:python文件及目录操作_基本文件操作

    目录 专栏导读  1 文件的创建打开和关闭 2.1 使用内置函数open(),close()创建打开和关闭

    2024年02月15日
    浏览(46)
  • Linux文件操作基础及基本I/O函数使用

    Linux是一个基于文件系统的操作系统,文件操作是其中一项最基本的任务之一。通过文件操作,用户可以创建、移动、复制、读取和修改文件及目录等。 1.ls:列出目录中的文件和子目录。 ls -a:显示所有包括隐藏文件。 ls -l:使用长格式输出文件详细信息。 ls -h:显示文件大

    2024年02月01日
    浏览(42)
  • 【100天精通python】Day19:文件及目录操作_基本文件操作

    目录 专栏导读  1 文件的创建打开和关闭 2.1 使用内置函数open(),close()创建打开和关闭

    2024年02月14日
    浏览(57)
  • python数字图像处理基础(二)——图像基本操作、滑动条、鼠标操作

    import cv2 import numpy as np import matplotlib.pyplot as plt 图像读取 cv2.MREAD_COLOR: 彩色图像 或用1 cv2.IMREAD_GRAYSCALE:灰度图像 或用0 img = cv2.imread(‘cat.jpg’, cv2.IMREAD_GRAYSCALE) 等同于: img = cv2.imread(‘cat.jpg’, 0) 图像的显示,也可以创建多个窗口 cv2.imshow(‘img’, img) 等待时间,毫秒级,0表示

    2024年01月18日
    浏览(60)
  • python读写文件操作的三大基本步骤

    目录 基本步骤 常用函数 open()函数 close()函数 read()函数 readlines()函数 readline()函数 write()函数 writelines()函数 with语句 读写操作的应用: 拷贝文件  with 语句的嵌套 逐行拷贝 1. 打开文件:open(filepath, mode, encoding) 2. 读写文件:read() / write() 3. 关闭文件:close() python读取文件操作实

    2024年02月22日
    浏览(48)
  • 【Python】Python读写.xlsx文件(基本操作、空值补全等)

    本文介绍如何使用使用 pandas 库来读取xlsx文件中的数据。 需要安装openpyxl库才可以读取xlsx文件,使用pip install openpyxl。 当然也可以用其他的库,比如openpyxl、xlrd,可以参考: https://blog.csdn.net/moasad/article/details/120120673 https://blog.csdn.net/liuyingying0418/article/details/101066630 2.1 基本操

    2023年04月13日
    浏览(56)
  • 开始MySQL之路—— DDL语法、DML语法、DQL语法基本操作详解

    DDL(Data Definition Language) 数据定义语言,该语言部分包括以下内容。 对数据库的常用操作 对表结构的常用操作 修改表结构 1: 查看当前所有的数据库 show databases; 2:创建数据库 create database if not exists 数据库名称; create database 数据库名称; 3:选择使用哪一个数据库 use 数据库

    2024年02月10日
    浏览(44)
  • ES基本查询语法_Kibana操作(持续更新)

    1. ES查询索引下所有的数据 2. ES单字段精确查询 3. ES多字段精确查询(默认Kibana查询最多展示10条记录,可以通过设置size来展示更多匹配到的数据) 4. ES数组字段精确查询 5. ES日期范围查询(大写HH表示24小时制) 6. 查询ES索引下的数据量 7. 查询ES索引下的mapping关系 7. 查询E

    2024年02月11日
    浏览(66)
  • 浏览器常用基本操作之python3+selenium4自动化测试(基础篇)

    1、打开指定的网页地址 我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现 1 2 3 from selenium import webdriver driver = webdriver.Edge() driver.get( \\\'https://www.baidu.com/\\\' )   # 本行用于访问指定的地址 2、获取当前页面url 我们在

    2024年02月01日
    浏览(78)
  • 【Redis】Redis在Linux与windows上的安装&基本操作语法

    Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品 有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供

    2024年02月06日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包