美文网首页
10-文件介绍

10-文件介绍

作者: 飘摇的水草 | 来源:发表于2023-04-06 20:03 被阅读0次
  • 文件的作用:可以永久的保存数据
  • 文件在硬盘中存储的格式是二进制

文件操作的流程

  • 打开文件
  • 读写文件
  • 关闭文件
文件操作

读文件

open (file, mode = 'r', encoding = None)

  • file要操作的文件名称,类型是str
  • mode,文件打开的方式,r (read) 只读打开,w(write)写打开,a(append)追加打开
  • encoding,主要有两种,GBK和UTF-8
  • 返回值是一个文件对象

全部操作是

# 以只读的方式打开当前目录下的1.txt文件,文件不存在会报错
f = open("1.txt", 'r')
buff = f.read()
print (buff)

按字节读取

  • 如果 read 后面跟上数字表示读取几个字符,如果再调用 read 时表示再读取后面的几个字符,如下所示:
file1 = open("a.txt",'r')
buff = file1.read(3)
print buff
print ("*" * 30)
buff = file1.read(3)
print buff
file1.close()

程序运行结果如下所示:

读操作.png

按行读取

file2 = open("a.txt",'r')
# 一次读取一行的内容,返回的值是字符串
buff = file2.readline()
# 按行读取,一次读取所有行,返回值是列表,列表中的每一项是一个字符串,即每一行的内容
# buff = file2.readlines()
print buff

以行的形式读取大文件

file3 = open("a.txt", 'r')
while True:
   # 或者 file3.read(1024)的形式也可以
    buff = file3.readline()  
    if buff:
        print buff
    else:
        break

file3.close()
写文件
  1. 打开文件W方式打开文件,文件不存在会创建文件,如果文件存在,会覆盖原文件
file1 = open("a.txt","w", encoding = 'utf-8')
file1.write("Hello,World\n")
file1.write("Hello,Python")
file1.close()

注意:当使用UTF-8编码打开GBK编码的数据时会出现乱码,编码就是如何将中文汉字变为二进制,或者如何将二进制转换为汉字

文件的追加操作
  • 以 a 方式打开文件,追加内容,在文件的末尾写入内容
  • 文件不存在,会创建文件
  • 每运行一次则追加一次
file = open("a.txt", 'a')
file.write("hello world!")
file.close()
二进制操作文件
  • 文本文件:txt、py、md 能够使用记事本打开的文件,这种文件可以使用文本方式打开文件,也可以使用二进制的方式打开文件
  • 二进制文件:具有特殊格式的文件,mp3、mp4、rmvb、avi、jpg等,只能使用二进制的方式打开文件,主要有 rbwbab三种情况,这种情况不能指定 encoding 参数
file4 = open("c.txt",'wb')
# 将字符串转化为二进制
file4.write("你好".encode())
file4.close()

file5 = open("c.txt",'rb')
buf = file4.read()
print buf
file5.close()
文件备份
  1. 用只读的方式打开文件
  2. 读取文件内容
  3. 关闭文件
  4. 只写的方式,打开新文件
  5. 将第 2 步读取的内容写入新文件
  6. 关闭新文件
file6 = open("a.txt",'r')
buff = file6.read()
file6.close()

file7 = open("d.txt",'w')
file7.write(buff)
file7.close()
文件和目录的操作
  • 对文件和目录的操作,需要导入 os 模块:import os

1. 文件重命名

格式:os.rename(原文件路径名,新文件路径名)

2. 删除文件

格式:os.remove("a.txt")

3. 创建目录

格式:os.mkdir(目录路径名)

4. 删除空目录

格式:os.rmdir(目录名)

5. 获取当前所在的目录

格式:os.getcwd()

6. 切换目录

格式:os.chdir()

7. 获取当前目录的内容

格式:os.listdir()

批量修改文件名
def createFiles():

    os.chdir("test")
    for i in range(10):
        fileName = str(i) + ".txt"
        print fileName
        f = open(fileName,'w')
        f.close()
    os.chdir("../")

createFiles()

先创建文件,再修改文件

def modifyFiles():
    path = os.chdir("test")
    buf_list = os.listdir()
    for i in buf_list:
        file_name = "py_" + i
        os.rename(i,file_name)

    os.chdir()

modifyFiles()

相关文章

网友评论

      本文标题:10-文件介绍

      本文链接:https://www.haomeiwen.com/subject/nsisddtx.html