Python中文件读写,定位文件读写的指针会随着不断的读写移动。那额如何将读写指针进行移动到特定位置进行读写呢?

1.使用tell()函数来查看文件定位指针的位置


1.创建文件,往文件里写入数据,注意W+是写读模式

fl = open("test.doc",'w+')

fl.write("this is a test,and this is good test")

#2.直接读取文件

content =fl.read(3)

print(content) #显示为空,因为写入文件后,操作文件的定位指针在文件末尾,所以为空

#3.在读写文件的过程中,如果想知道当前的位置,可以使用tell()来获取

print("文件指针的位置:",fl.tell())

#结果时:36,即文件的末尾对应的位置

2.使用seek()函数来定位读写

seek() 方法用于移动文件读取指针到指定位置。seek(offset, whence)有2个参数:offset:偏移量,whence:方向。whence:是可选参数,默认值为 0。给offset参数一个定义,表示要从哪个位置开始偏移;0代表从文件开头开始算起,1代表从当前位置开始算起,2代表从文件末尾算起。

两个参数可以单独使用,两个参数一起使用定位更加精准。

'''mytest.txt文件内容如下:

helllo,world

hahhaahh

jjjjjjj

'''

#测试seek()函数代码

fi =open("mytest.txt","rb") #python3将打开模式从r变成rb即可

print("当前读写定位:",fi.tell())

fi.seek(-3,2)

print("当前读写定位:",fi.tell())

print(fi.read())

print("读取文件后的定位:",fi.tell())

fi.seek(5,0) #回头开头,偏移量是5

print(fi.readline())

fi.close()

---------------------------------------

当前读写定位: 0

当前读写定位: 28

b'jjj'

读取文件后的定位: 31

b'o,world\r\n' #会将换行符等隐藏字符也会读取出来

3.文件重命名和删除文件

1.os模块中的rename()可以完成对文件的重命名操作,rename(oldfile_name,newfile_name)

import os #要先导入包,OS包里才有重命名和杀出文件的方法

file1 = open("文件夹1","w") #新建文件

file1.close() #要将文件操作流关闭,否则报错,不能同时操作

os.rename("文件夹1","文件夹2")

2.os模块中的remove()可以完成对文件的删除操作:remove(待删除的文件名)

import os

os.remove("文件夹2") #如无报错

4.关于文件夹的操作

Python中就像对文件操作需要os模块一样,如果要操作文件夹,同样需要导入os模块,调用其中的方法即可

import os

#os.mkdir("hello") #创建目录hello,如果存在报错

print(os.getcwd()) #获取当前目录os.getcwd()

print(os.listdir("./")) #获取目录下的文件列表

os.rmdir("file_demo") #删除目录

-----------------------------------

D:\pythoyworkspace\file_demo

['file_copy.py', 'file_demo', 'file_demo.py', 'file_demo2.py', 'hello', 'mtst.txt', 'mytest.txt', 'mytest1.txt', 'seek_Demo.py', 'sfds.py', 'test.doc']