1)tell() 函数-获取指针位置
tell() 函数的用法很简单,其基本语法格式如下:
file.tell()
# tell()函数获取文件指针位置 f = open(file='read.txt', encoding='utf-8') f.read(5) print(f.tell()) # 指针位置为5 f.read(5) print(f.tell()) # 指针位置为10 f.close()
2)seek()函数-设置指针位置 seek() 函数用于将文件指针移动至指定位置,该函数的语法格式如下:
file.seek(offset[, whence])
参数释义:
- offset:偏移量
- whence:指针所在位置,默认为0-开头位置,1表示当前位置,2表示文件尾
# seek()函数设置文件指针位置 f1 = open(file='read.txt', encoding='utf-8') f1.read(5) print(f1.tell()) # 指针位置为5 f1.seek(9) # 设置指针位置为9 print(f1.tell()) # 指针位置为9 f1.close()
6.使用with...as...语法读写文件 在 Python 中,使用 with...as... 语句操作上下文管理器(context manager),它能够帮助我们自动分配并且释放资源 。
with as 语句示例:
# with...as...上下文管理器 # with...as...能够自动释放资源,无需手动关闭 with open('read.txt', encoding='utf-8') as f: print(f.read())
由于with...as...语句自带资源调度能力,所以上面的读取大文件也可以使用with...as...语句来实现:
def read_book(file_path): """读取大文件,逐行读取""" with open(file_path, encoding='utf-8') as file_object: while True: chunk_data = file_object.readlines() for chunk in chunk_data: print(chunk) if not chunk_data: break time.sleep(1)
7.fileinput模块:逐行读取多个文件Python 提供了 fileinput 模块,通过该模块中的 input() 函数,我们能同时打开指定的多个文件,还可以逐个读取这些文件中的内容 。
fileinput 模块中 input() 该函数的语法格式如下:
fileinput.input(files="filename1, filename2, ...", inplace=False, backup='', bufsize=0, mode='r', openhook=None)
其中,各个参数的含义如下:
- files:多个文件的路径列表;
- inplace:用于指定是否将标准输出的结果写回到文件,此参数默认值为 False;
- backup:用于指定备份文件的扩展名;
- bufsize:指定缓冲区的大小,默认为 0;
- mode:打开文件的格式,默认为 r(只读格式);
- openhook:控制文件的打开方式,例如编码格式等 。
import fileinput # 同时读取多个文件 for line in fileinput.input(files=('read.txt', 'write.txt'), openhook=fileinput.hook_encoded('utf-8')): print(line, end="n") fileinput.close() # 替换指定内容,并备份 # 注:openhook=fileinput.hook_encoded('utf-8')指定编码方式 # inplace=True不能和openhook参数同时使用,否则会报错 for content in fileinput.input(files='read.txt', backup='.bak', inplace=True): print(content.replace('hello', 'HELLO')) fileinput.close()
8.linecache模块:读取文件指定行 除了可以借助 fileinput 模块实现读取文件外,Python 还提供了 linecache 模块 。和前者不同,linecache 模块擅长读取指定文件中的指定行 。换句话说,如果我们想读取某个文件中指定行包含的数据,就可以使用 linecache 模块 。示例:
import linecache import string # linecache()读取指定行 print(linecache.getline(string.__file__, 3)) # 读取string文件的第三行 for line in linecache.getlines('read.txt'): # 读取文件的所有行,返回结果为一个列表 print(line)
三、Python写入文件1.Python write()函数Python 中的文件对象提供了 write() 函数,可以向文件中写入指定内容 。该函数的语法格式:
file.write(string)
其中:
- file 表示已经打开的文件对象;
- string 表示要写入的字符串(或字节,仅适用写入二进制文件) 。
# write()方法写入文件 f = open('write.txt', 'w') f.write("hello world 1n") f.write("hello world 2n") f.write("hello world 3n") f.close()
2.Python writelines()函数 Python 的文件对象中,不仅提供了 write() 函数,还提供了 writelines() 函数,可以实现将字符串列表写入文件中 。
# write()方法批量写入文件 f_w = open('write.txt', 'w+', encoding='utf-8') f_r = open("E:/很纯很暧昧.txt", encoding='utf-8') book = f_r.read(100) f_w.writelines(book) f_w.close()
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 怎么创建加密文件夹并命名 怎么创建加密文件夹
- pgf转换器免费版?PGF是什么文件,为什么它占的内存这么大并且不能删除?
- 民政局|官方回应“通报表扬火化场每日火化量30例以上”:工作人员确实加班加点,内部文件已删除
- td是啥
- 火炬之光2存档文件、火炬之光2怎么存档
- dwg浏览器查看,DWG格式文件用什么软件打开?
- Excel表格文件,.xls和.xlsx格式的区别 xls和xlsx区别
- kite的英文怎么读音 python kite 安装
- excel文件加密解除~~excel加密忘记密码怎么解开
- xp临时文件夹无写入权限 xp临时文件夹