首页 > 其他分享 >8.文件操作

8.文件操作

时间:2022-10-20 20:35:44浏览次数:53  
标签:文件 name 备份 new 操作 打开 os

文件操作


文件操作的作用

⽂件操作包含:打开、关闭、读、写、复制......

⽂件操作的的作⽤是:读取内容、写⼊内容、备份内容......

文件操作的基本步骤

  • 打开⽂件
  • 读写等操作
  • 关闭⽂件

打开

在python,使⽤open函数,可以打开⼀个已经存在的⽂件,或者创建⼀个新⽂件,语法如下:

open(name,mode)

name:是要打开的⽬标⽂件名的字符串(可以包含⽂件所在的具体路径)。
mode:设置打开⽂件的模式(访问模式):只读、写⼊、追加等。

模式 描述
r 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
rb 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。
r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
rb+ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。
w 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
w+ 打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
wb+ 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
a 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
ab 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
ab+ 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

文件对象方法

写入操作

语法--w

f.write("内容")
# 打开文件
f = open("test.txt","w",encoding="utf-8")

# 写入内容
f.write("大家好呀,我是张三")

# 关闭文件
f.close()

语法--a

# 打开文件
f = open("test.txt","a",encoding="utf-8")

# 写入内容
f.write("大家好呀,我是张三")

# 关闭文件
f.close()

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

读取操作

  • read(num)

num表示要从⽂件中读取的数据的⻓度

# 打开文件
f = open("test.txt","r+",encoding="utf-8")

# 读取信息
content = f.read()

# 将读取的信息打印
print(content)

# 关闭文件
f.close()
  • readlines()和readline()

readlines可以按照⾏的⽅式把整个⽂件中的内容进⾏⼀次性读取,并且返回的是⼀个列表,其中每⼀⾏的数据为⼀个元素

# 打开文件
f = open("test.txt","a",encoding="utf-8")

# 读取内容
content = f.readlines()
print(content)

# 关闭文件
f.close()
  • seek()

作⽤:⽤来移动⽂件指针。

语法

⽂件对象.seek(偏移量, 起始位置)

0:⽂件开头
1:当前位置
2:⽂件结尾

⽂件备份

需求:⽤户输⼊当前⽬录下任意⽂件名,程序完成对该⽂件的备份功能(备份⽂件名为xx[备份]后缀,例如:test[备份].txt)

  1. 接收⽤户输⼊的⽂件名
  2. 规划备份⽂件名
  3. 备份⽂件写⼊数据

代码实现

接收⽤户输⼊⽬标⽂件名

​ 1、提取⽬标⽂件后缀
​ 2、组织备份的⽂件名,xx[备份]后缀

name = input("请输入文件名:")

# 后缀中.的下标
index = name.rfind(".")

# print(name[:index])
# print(name[index:])

new_name = name[:index]+"备份"+name[index:]
print(new_name)

备份⽂件写⼊数据

​ 1、打开源⽂件 和 备份⽂件
​ 2、将源⽂件数据写⼊备份⽂件
​ 3、关闭⽂件

代码演示

# -*- coding:utf-8 -*-
old_name = input("请输入文件名:")
index = old_name.rfind(".")

# print(name[:index])
# print(name[index:])

new_name = old_name[:index]+"备份"+old_name[index:]

old_f = open(old_name,"rb")
new_f = open(new_name,"ab")

while True:
    cont = old_f.read()
    if len(cont) == 0:
        break
    new_f.write(cont)

old_f.close()
new_f.close()

文件和文件夹的操作

在Python中⽂件和⽂件夹的操作要借助os模块⾥⾯的相关功能,具体步骤如下

1、导入os模块

import os

⽂件重命名

os.rename(⽬标⽂件名, 新⽂件名)

删除⽂件

os.remove(⽬标⽂件名)

创建⽂件夹

os.mkdir(文件名名字)

删除⽂件夹

os.rmdir(⽂件夹名字)

获取当前⽬录

os.getcwd()

改变默认⽬录

os.chdir(⽬录)

获取⽬录列表

os.listdir(⽬录)

批量重命名

文件夹添加字符串

import os

file_list = os.listdir("E:\python_basics")
print(file_list)
for file in file_list[1:]:
    new_name = "python_" + file
    os.rename(file,new_name)

文件夹删除字符串

file_list = os.listdir()
num = 2
for file in file_list[1:]:
    if num == 1:
        new_name = "python_" + file
    elif num == 2:
        result = len("python_")
        new_name = file[result:]
    os.rename(file,new_name)

标签:文件,name,备份,new,操作,打开,os
From: https://www.cnblogs.com/blog4lyh/p/16811158.html

相关文章