1.python中操作文件的函数/方法(1个函数3个方法)
序号 | 函数/方法 | 说明 |
---|---|---|
01 | open | 打开文件,并且返回文件操作对象 |
02 | read | 将文件内容读取到内存 |
03 | write | 将指定内容写入文件 |
04 | close | 关闭文件 |
● open
函数负责打开文件,并且返回文件对象
● read
/write
/ close
三个方法都需要通过文件对象来调用
·
2.文件读取
● open
函数的第一个参数是要打开的文件名(文件名区分大小写)
。如果文件存在,返回文件操作对象
。如果文件不存在,会抛出异常(当以可写方式打开后,如果文件不存在则会创建此文件)
●read
方法可以一次性读入并返回文件的所有内容
●close
方法负责关闭文件
。如果忘记关闭文件,会造成系统资源消耗,而且会影响到后续对文件的访问
●注意:方法执行后,会把文件指针移动到文件的末尾
# 打开文件并返回到file对象
file = open("文件名")
# 读取文件内容并返回到text对象中
text = file.read()
# 关闭文件
file.close()
`
文件指针:
● 在第一次打开文件时,文件指针会指向文件的开始位置
● 当执行read
方法后,文件指针会移动到读取内容的末尾
● 那么在执行了一次read
方法后,读取了所有内容,如果再次调用read
方法,会无法获得文件内容,因为在第一次调用read
方法后,文件指针已经指向了内容的末尾.
`
3.打开文件的方式
● open
函数默认以只读方式打开文件,并且返回文件对象
实现方法:
file = open("文件名", "访问方式")
访问方式 | 说明 |
---|---|
r | 以只读方式打开文件。 文件的指针将会放在文件的开头,这是默认模式。如果文件不存在抛出异常 |
w | 以只写方式打开文件。 如果文件存在会被覆盖。如果文件不存在,创建新文件 |
a | 以末尾追加的方式打开文件。 如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入 |
r+ | 以读写方式打开文件。 文件的指针将会放在文件的开头。如果文件不存在,抛出异常 |
w+ | 以读写方式打开文件。 如果文件存在会被覆盖。如果文件不存在,创建新文件 |
a+ | 以读写方式打开文件。 如果该文件已存在,文件指针将会放在文件的结尾。如果文件不存在,创建新文件进行写入 |
b | 表示读写二进制文件 |
rb | 按照二进制位对文件进行只读 |
wb | 按照二进制位对文件进行只写 |
注:
二进制文件中存在如下从低位向高位排列的数据:7F 32 1A 2F 3D 2C 12 2E 76
如果使用 ‘r’ 进行读取,则读到第三个字节(‘0x1A’),即认为文件结束,就是EOF。
如果使用 ‘rb’ 按照二进制位进行读取的,不会将读取的字节转换成字符,从而避免了上面的错误。
注:频繁移动文件指针,会影响文件的读写效率,开发中更多的时候会以只读、只写的方式来操作文件
`
4.按行读取文件内容
● read
方法默认会把文件的所有内容一次性读取到内存
● 如果文件太大,对内存的占用会非常严重
readLine方法
● readline
方法可以一次只读取一行内容
● 方法执行后,会把文件指针移动到下一行,准备再次读取
实现:
file = open("文件名")
while True:
# 读取一行内容
txt = file.readline()
# 判断指针是否读到内容
if not txt:
break
print(txt)
# 关闭文件
file.close()
`
案例:利用文件的读写进行文件复制操作
1)对于小文件的复制
如图:
·
2)对于大文件的复制
如图:
·
5.在开发时,常用文件的格式
# 当以可写方式打开时,文件名不存在会自动创建该文件,并且此方法结束后会自动调用close(),无需手动调用
with open("文件名", "访问方式") as 变量:
变量.write()
变量.read()
......
上面这种写法相当于👇
变量 = open("文件名", "访问方式")
try:
变量.write()
变量.read()
......
except:
变量.close()
也就是说,用 with open() as 变量:
这种方法,当对其进行操作出现异常时会自动关闭文件,无需再手动关闭,并且 with 也会保证文件的close()
百分百调用,不必手动关闭。
·
·
·
6.文件/目录的常用管理操作
在python中,通过导入os
模块,可以对文件/目录进行创建、删除、重命名、查看目录内容等操作
`
文件操作
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | rename | 重命名文件 | os.rename(源文件名, 目标文件名) |
02 | remove | 删除文件 | os.remove(文件名) |
目录操作
序号 | 方法名 | 说明 | 示例 |
---|---|---|---|
01 | listdir | 目录列表 | os.listdir(目录名) |
02 | mkdir | 创建目录 | os.mkdir(目录名) |
03 | rmdir | 删除目录 | os.rmdir(目录名) |
04 | getcwd | 获取当前目录 | os.getcwd() |
05 | chdir | 修改工作目录 | os.chdir(目标目录) |
06 | path.isdir | 判断是否是文件 | os.path.isdir(文件路径) |