13文件操作

文件操作

文件读写

  • 语法:open(file, mode, encoding)
  • 参数:file —— 文件所在位置(相对路径、绝对路径) mode —— 操作文件的模式 encoding —— 文件的编码格式
    • 相对路径:基于目前的路径获取
    • 绝对路径:一个完整的路径
  • 操作文件的模式:r-读 w-写 a-追加
模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
  • 常用编码格式:utf-8 gbk gb2312

读写操作方法

模式 介绍
read(s) 不填写s就读取所有文件内容,填写读取指定长度数据
write() 写入字符串或进制文件
writelines() 写入以列表保存的字符串或进制文件
readline() 以行读取数据
readlines() 读取所有数据存放列表

只写模式w

  • **f.writable() **          -->  判断是否可写
  • **f.write(str) **          -->  写入内容,返回值为写入字符串的长度
  • **f.writelines(seq) ** --> 写入多行,但需要自己添加换行符

注意:

  • w模式,当文件不存在时创建文件
  • 再次写入会覆盖
f = open('filetest.txt', mode='w', encoding='utf-8')

# 判断是否可写
print(f.writable())
# 写入内容
f.write('i am yueyue\nasdasda\n')
# 写入多行
f.writelines('I love You\nasdasdasdsad')
# 关闭文件
f.close()

追加模式a

注意

  • a模式,当文件不存在时创建文件
  • 再次写入为追加
f = open('filetest.txt', mode='a', encoding='utf-8')
# 判断是否可写
print(f.writable())
# 写入内容
f.write('i am yueyue\nasdasda\n')
# 写入多行
f.writelines('I love You\nasdasdasdsad')
# # 关闭文件
f.close()

w 和 a 模式:如果文件不存在则创建该文件;如果文件存在,w 模式先清空再写入,a 模式直接末尾追加。

只读模式r

  • f.readable()           --> 判断是否可读,返回值为布尔
  • f.read(n)               --> 读取全部,在python3中n为字符
  • f.readline()            --> 逐行读取,包括\n
  • f.readlines()          --> 读取所有,返回值为列表,包括\n
  • **f.tell()                **--> 文件指针所处文件位置
  • **seek() --> **作用:用来移动文件指针
f = open('filetest.txt', mode='r', encoding='utf-8')
# 判断是否可读
print(f.readable())
# 逐行读取
print(f.readline(),end='')
# 读取所有 返回值为列表
print(f.readlines())
# # 读取文件全部内容
print(f.read())

1)tell的使用

f = open("filetest.txt", mode="r", encoding="utf-8")
'''
filetest2.txt
helloworld
你好
'''
# 汉字代表三个字节 换行代表两个字节  字母数字代表的是一个字节
print(f.tell())
print(f.readline(), end="")
print(f.tell())
print(f.readline())
print(f.tell())

2)seek的使用

f = open("filetest.txt", mode="rb")
'''
filetest2.txt
helloworld
你好
'''

# 改变指针位置
"""
offset: 偏移量
whence: 0 从文件头开始  1 当前位置开始  2 文件尾
注意,当offset值非0时,Python要求文件必须要以二进制格式打开,
否则会抛出 io.UnsupportedOperation 错误。
"""
print(f.tell())
# 读取一个字节,文件指针自动后移1个数据
print(f.read(1))
print(f.tell())
# 将文件指针从文件开头,向后移动到 5 个字符的位置
f.seek(5)
print(f.tell())
print(f.read(1))
# 将文件指针从当前位置,向后移动到 5 个字符的位置
f.seek(5, 1)
print(f.tell())
print(f.read(1))
# 将文件指针从文件结尾,向前移动到距离1个字符的位置
f.seek(-1, 2)
print(f.tell())
print(f.read(1))

文件备份

需求:用户输入当前目录下任意文件名,程序完成对该文件的备份功能(备份文件名为xx备份后缀,例如:test备份.txt)

  1. 接收用户输入的文件名
  2. 规划备份文件名
  3. 备份文件写入数据

代码实现

A、接收用户户输入目标文件名
1、提取目标文件后缀
2、组织备份的文件名,xx备份.后缀

old_name = input("请输入文件名:")
index = old_name.rfind(".")  # rfind()函数从右开始找元素所在索引位置
new_name = old_name[:index]+"备份"+old_name[index:]

B、备份文件写入数据
1、打开源文件 和 备份文件
2、将源文件数据写⼊备份文件
3、关闭文件

old_name = input("请输入文件名:")
index = old_name.rfind(".")
new_name = old_name[:index]+"备份"+old_name[index:]

# 老文件
old_f = open(old_name,"r")
# 新文件
new_f = open(new_name,"w")

cont = old_f.readlines()
print(cont)
new_f.writelines(cont)

old_f.close()
new_f.close()

文件夹操作

模块.函数 介绍
os.rename() 重命名文件或者文件夹
os.remove() 删除文件
os.mkdir() 创建文件夹
os.makedirs() 以递归方式创建多个文件夹
os.rmdir() 删除文件夹(空文件夹)
os.removedirs() 以递归方式删除多个空文件夹
os.getcwd() 获取当前路径
os.chdir() 改变默认⽬录
os.listdir() 获取文件中的文件
os.path.exists() 判断该路径下的文件或文件夹是否存在
os.path.join() 拼接路径
shutil.copy() 复制文件
shutil.rmtree() 把文件和内容全部删除

批量重命名

文件夹添加字符串

import os

# 先切换路径  
os.chdir('testsad')
print(os.getcwd())
# 遍历此路径下的文件
file_list = os.listdir(os.getcwd())
print(file_list)
for file in file_list:
    # 循环拼接
    new_name = "python_" + file
    # print(new_name)
    os.rename(file,new_name)

原文链接:https://www.cnblogs.com/daguo118/p/17316006.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:13文件操作 - Python技术站

(0)
上一篇 2023年4月17日
下一篇 2023年4月17日

相关文章

  • python3定位并识别图片验证码实现自动登录功能

    下面是“Python3定位并识别图片验证码实现自动登录功能”的完整攻略。 问题的背景和解决方案 在进行自动化测试或爬虫时,常常会遇到网站使用图片验证码以增强安全性的情况,这会增加自动化测试难度,导致某些重要的测试无法完成。因此,我们需要找到一种方法来自动识别图片验证码并进行登录。 解决方案一般为:使用Python的第三方库PIL(Python Imaging…

    python 2023年5月18日
    00
  • 从0开始的Python学习014面向对象编程(推荐)

    下面是针对“从0开始的Python学习014面向对象编程(推荐)”的完整攻略: 一、什么是面向对象编程? 面向对象编程(OOP)是一种编程模式,它将现实世界中的对象及其关系映射到计算机程序中。在面向对象编程中,程序是由许多相互协作的对象组成的。每个对象都是独立的,有自己的数据和行为,并且能够与其他对象进行交互。 在Python中,一切皆为对象,其中包括数字、…

    python 2023年6月3日
    00
  • python beautiful soup库入门安装教程

    Python BeautifulSoup库入门安装教程 BeautifulSoup是Python中一个非常流行的HTML和XML解析库,可以帮助我们更方便地解析网页。本文将介绍如何安装BeautifulSoup,并提供两个示例。 安装BeautifulSoup 在使用BeautifulSoup之前,需要安装它。以下是一个示例代码,演示如何使用pip安装Bea…

    python 2023年5月15日
    00
  • python traceback捕获并打印异常的方法

    Python中的Traceback是调试程序时非常重要的工具,通过Traceback能够找到代码中的错误并进行处理。可以通过捕获异常并进行打印,详细的讲解如下: 捕获并打印异常的方法 要捕获异常并进行打印,可以使用try和except语句块。当代码运行出现异常时,异常会被捕获到except语句块中进行处理。可以在except语句块中添加打印语句来打印异常信息…

    python 2023年5月13日
    00
  • python中的数据结构比较

    Python中的数据结构可以通过比较运算符进行比较,比较的结果为布尔类型True或False。下面是Python中常用的数据结构的比较方法。 比较List Python中的List数据结构支持比较运算符”<“, “>”, “<=”, “>=”和”==”,其中”==”表示两个List中的元素内容和顺序完全一致。比较的顺序为从第一个元素开…

    python 2023年5月14日
    00
  • Python的基本语法详解

    Python的基本语法详解 Python是一种高级编程语言,具有简单易学、可读性强、功能强大等特点。在Python中,有一基本语法是必须掌握的,包括变量、数据类型、运算符、条件语句、循环语句、函数等。以下是Python的基本语法详解的完整攻略。 变量 在Python中,变量是用于存储数据的容器。变量可以存类型的数据,例如整数、浮点数、字符串等。在Python…

    python 2023年5月13日
    00
  • Python实现在Excel文件中写入图表

    以下是Python实现在Excel文件中写入图表的完整实例教程。 前置条件 在开始之前,需要确保已经安装好以下两个Python包: openpyxl:用于读取和写入Excel文件。 matplotlib:用于绘制图表。 安装方法:在命令行中输入pip install openpyxl matplotlib。 实现过程 导入必要的包 首先需要导入openpyx…

    python 2023年5月13日
    00
  • 详解Python3中的正则表达式的基本用法

    详解Python3中的正则表达式的基本用法 正则表达式是一种用于描述字符串模式的语言,可以用于匹配、查找、替换和割字符串。Python中的re模块提供了正则表达式支持,方便进行字符串的处理。本文将详细讲解Python3中正则表达式的基本用法,包括正则表达式语法、re模块的常用函数以及两个用匹配实例。 正则表达式语法 正则表达式由一些特殊字符普通字符组成,用于…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部