Python文件操作

文件的打开和关闭

文件的打开
使用open函数来打开文件

open(文件名[,访问模式])
使用open函数打开文件时,如果没有注明访问模式,则必须保证文件是存在的,否则会出现异常

文件模式
r: 只读方法打开文件;
w:写入,如果文件存在则将其覆盖;如果文件不存在,创建新文件进行写入
a: 打开一个文件在文件末尾追加;若文件不存在,创建新文件进行写入
以上三种后面若加b,如rb,表示以2进制格式打开用于只读;若后面是+号,如r+表示读写(+可以立即为添加权限);若添加b和+,如:rb+表示以二进制格式打开用于读写

文件的关闭
凡是打开的文件,要使用close方法关闭。即使文件会在程序退出后自动关闭,但是考虑到数据的安全性,在每次使用完文件后,都要使用close方法关闭文件,否则一旦程序崩溃,可能导致文件中的数据没有保存

# 新建一个文件,文件名test.txt
file = open('test.txt', 'a+')
# 关闭文件
file.close()

文件的读写

写文件
向文件中写入数据,使用write方法来完成。在操作某个文件时,每调用一次write方法,写入的数据就会追加到文件末尾
例:

# 新建一个文件,文件名test.txt
file = open('test.txt', 'a+', encoding="utf-8")
# 写入数据
for i in range(5):
    file.write("Python文件操作\n")
# 关闭文件
file.close()
写入汉字有可能会出现乱码,最好这样:file = open('test.txt', 'a+', encoding="utf-8")

读文件
1、使用read方法读取文件

file.read(size)

size表示要从文件中读取的数据长度,单位为字节。如果没有指定size,那么表示读取文件的全部数据

2、使用readlines方法读取文件

file.readlines()

若文件的内容很少,可以使用readlines方法把整个文件的内容进行一次性读取。readlines方法会返回一个列表,列表中的每一个元素为文件中的每一行数据

3、使用readline方法按行读取数据

file.readline()

文件的定位读取
1、使用tell方法获取文件当前的读写位置
该方法会返回文件指针的当前位置

pos=file.tell()

2、使用seek方法定位到文件的指定读写位置
如果要从指定的位置开始读取或者写入文件的数据,可以使用seek方法

seek(offset[,whence])

offset:表示偏移量,需要移动的字节数
whence:表示方向
(1)SEEK_SET或者0:默认值,表示从文件的起始位置开始偏移
(2)SEEK_CUR或者1:表示从文件当前的位置开始偏移
(3)SEEK_END或者2:表示从文件末尾开始偏移

例1:使用seek方法定位到文件的指定位置

file = open("test.txt", "r")
words = file.read(15)
print("读取的数据是:", words)  # Hello World!Hel
# 查找当前位置
pos = file.tell()
print("当前文件的位置是:", pos)   # 15
# 重新设置位置
file.seek(4)
pos = file.tell()
print("当前文件的位置是:", pos)   # 4
file.close()

例2:将文件的读写位置定位到文件末尾4字节处

file = open("test.txt", "rb")
words = file.read(3)
print("读取的数据是:", words)
# 查找当前位置
pos = file.tell()
print("当前文件的位置是:", pos)   # 3
# 重新设置位置
file.seek(-4,2)
pos = file.tell()
print("当前文件的位置是:", pos)   # 56
file.close()
注:没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置,从文件尾计算时就会引发异常。

文件的重命名和删除

重命名

import os
os.rename(src,dst)
src指定是需要修改的文件名,dst指的是修改后的新文件名

文件的删除

os.remove(path)

文件夹的相关操作

创建文件夹

os.mkdir(path)

获取当前目录

os.getcwd()

改变默认目录

os.chdir(path)

删除文件夹

os.remove(文件夹)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无知的小菜鸡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值