发布时间:2023-04-28 19:30
文件的类型:根据数据的逻辑存储结构,人们将计算机中的文件分为文本文件和二进制文件。
- 文本文件:专门存储文本字符数据。
- 二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信息。
- 二进制文件和文本文件这两种类型的划分基于数据逻辑存储结构而非物理存储结构,计算机中的数据在物理层面都以二进制形式存储。
标准文件(在解释器中导入sys模块后,便可对标准文件进行操作)
Python的sys模块中定义了3个标准文件,分别为:
- stdin(标准输入文件)。标准输入文件对应输入设备,如键盘。
- stdout(标准输出文件)。
- stderr(标准错误文件)。标准输出文件和标准错误文件对应输出设备,如显示器。
import sys file = sys.stdout file.write(\"hello\") #返回 hello
文本文件的基本操作
1.创建文本文件
# 打开一个新文件 f = open(\'num.txt\',\'w\') for i in range(100): f.write(str(i+1)+\'\\n\') #保存关闭文件 f.close()
2.open()函数打开文件
open(file, mode=\'r\', buffering=-1)
参数
file:文件的路径。
mode:设置文件的打开模式,取值有r、w、a。
buffering:设置访问文件的缓冲方式。取值为0或1。
打开模式
名称
描述
r/rb
只读模式
以只读的形式打开文本文件/二进制文件,若文件不存在或无法找到,文件打开失败
w/wb
只写模式
以只写的形式打开文本文件/二进制文件,若文件已存在,则重写文件,否则创建新文件
a/ab
追加模式
以只写的形式打开文本文件/二进制文件,只允许在该文件末尾追加数据,若文件不存在,则创建新文件
r+/rb+
读取(更新)模式
以读/写的形式打开文本文件/二进制文件,若文件不存在,文件打开失败
w+/wb+
写入(更新)模式
以读/写的形式打开文本文件/二进制文件,若文件已存在,则重写文件
a+/ab+
追加(更新)模式
以读/写的形式打开文本/二进制文件,只允许在文件末尾添加数据,若文件不存在,则创建新文件
3.close()方法关闭文件
(1)close()方法
file.close()
(2)with语句
Python可通过close()方法关闭文件,也可以使用with语句实现文件的自动关闭。
文件的读写
1.读取文件
(1)read()方法:可以从指定文件中读取指定字节的数据,其语法格式如下: read(n=-1)
(2)readline()方法:可以从指定文件中读取一行数据,其语法格式如下: readline()
(3)readlines()方法:可以一次读取文件中的所有数据,若读取成功,该方法会返回一个列表,文件中的每一行对应列表中的一个元素。语法格式如下: readlines(hint=-1)
- 参数hint的单位为字节,它用于控制要读取的行数
- 如果行中数据的总大小超出了hint字节,readlines()不会再读取更多的行。
2.写文件
(1)write()方法:可以将指定字符串写入文件,其语法格式如下: write(data) 以上格式中的参数data表示要写入文件的数据,若数据写入成功,write()方法会返回本次写入文件的数据的字节数。
# 定义一个字符串 string = \"Here we are all, by day; by night.\" with open(\'write_file.txt\', mode=\'w\', encoding=\'utf-8\') as f: size = f.write(string) # 写入字符串 print(size) # 打印字节数 #返回 34
(2)writelines()方法用于将行列表写入文件,其语法格式如下: writelines(lines)
- 以上格式中的参数lines表示要写入文件中的数据,该参数可以是一个字符串或者字符串列表。
- 若写入文件的数据在文件中需要换行,需要显式指定换行符。
string = \"Here we are all, by day;\\nby night we\'re hurl\'d By dreams, each one into a several world.\" with open(\'write_file.txt\', mode=\'w\', encoding=\'utf-8\') as f: f.writelines(string)
3.管理文件与目录
删除文件——os.remove(文件名)
文件重命名——os.rename(原文件名,新文件名)
创建/删除目录——os.mkdir(目录名)/os.rmdir(目录名)
获取当前目录——os.getcwd()
更改默认目录——os.chdir(路径名)
获取目录列表——os.listdir(目录/路径)