Python(三十五)python文件操作(3)

简介: 5:文件指针操作函数 tell() seek()(1):tell()判断文件指针当前所处的位置lua复制代码f = open("log.txt", 'r', encoding="utf-8") print(f.tell()) print(f.read(10)) print(f.tell())输出:arduino复制代码0https://gu10 (2):seek()将文件指针移动至指定位置语法:bash复制代码file.seek(offset[, whence])其中,各个参数的含义如下:file:表示文件对象;whence:作为可选参数,用于指定文

5:文件指针操作函数 tell() seek()

(1):tell()判断文件指针当前所处的位置

lua

复制代码

f = open("log.txt", 'r', encoding="utf-8")
 print(f.tell())
 print(f.read(10))
 print(f.tell())

输出:

arduino

复制代码

0
https://gu
10

 

(2):seek()将文件指针移动至指定位置

语法:

bash

复制代码

file.seek(offset[, whence])

其中,各个参数的含义如下:

file:表示文件对象;

whence:作为可选参数,用于指定文件指针要放置的位置,该参数的参数值有 3 个选择:0 代表文件头(默认值)、1 代表当前位置、2 代表文件尾。

offset:表示相对于 whence 位置文件指针的偏移量,正数表示向后偏移,负数表示向前偏移。例如,当whence == 0 &&offset == 3(即 seek(3,0) ),表示文件指针移动至距离文件开头处 3 个字符的位置;当whence == 1 &&offset == 5(即 seek(5,1) ),表示文件指针向后移动,移动至距离当前位置 5 个字符处。

示例:

scss

复制代码

f = open('log.txt', 'r', encoding="utf-8")
 # 判断文件指针的位置
 print(f.tell())
 # 读取一个字节,文件指针自动后移1个数据
 print(f.read(1))
 print(f.tell())
 # 将文件指针从文件开头,向后移动到 5 个字符的位置
 f.seek(5)
 print(f.tell())
 print(f.read(1))
 # 将文件指针从当前位置,向后移动到 5 个字符的位置
 f.seek(1, 0)
 print(f.tell())
 print(f.read(1))
 # 将文件指针从文件结尾,向前移动到距离 2 个字符的位置
 f.seek(5, 0)
 print(f.tell())
 print(f.read(1))

输出:

复制代码

0
h
1
5
:
1
t
5
:

 

四:python  with语句

使用 with as 操作已经打开的文件对象(本身就是上下文管理器),无论期间是否抛出异常,都能保证 with as 语句执行完毕后自动关闭已经打开的文件。

with表达式其实是try-finally的简写形式。但是又不是全相同。

python

复制代码

"""
格式
with context [as var]:
    pass
"""

 

尝试一下,我项目根目录下有一个header.jpg文件。复制一个headerCopy.jpg,代码如下:

python

复制代码

with open("header.jpg", 'rb') as src_file:
    with open("headerCopy.jpg", 'wb') as target_file:
        target_file.write(src_file.read())

 

可以看到,通过使用 with as 语句,即便最终没有关闭文件,修改文件内容的操作也能成功。

因此,一般在操作文件的时候,我们通常采用with语句。

With除了处理文件使用之外,还可以做其他使用:

python

复制代码

class test(object):
    def __enter__(self):
        print("enter方法被调用!")
        return self
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("销毁中~")
    def show(self):
        print("show方法被调用")
with test() as src_file:
    src_file.show()

输出:

复制代码

enter方法被调用!
我是方法
销毁中~

有好的建议,请在下方输入你的评论。

目录
相关文章
|
2月前
|
存储 Python
Python文件操作(1)
【10月更文挑战第17天】
Python文件操作(1)
|
5月前
|
监控 Java 数据处理
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【7月更文挑战第31天】在 Python 系统编程中, 文件操作与 I/O 管理至关重要。
59 2
|
2月前
|
数据采集 存储 Python
Python文件操作2
【10月更文挑战第18天】
Python文件操作2
|
6月前
|
开发者 Python
Python基础第七篇(Python的文件操作)
Python基础第七篇(Python的文件操作)
|
6月前
|
存储 安全 开发者
文件操作?Python让你轻松搞定!
【6月更文挑战第12天】Python编程中的文件操作至关重要,涉及数据存储和系统交互。通过内置的`open()`函数,开发者可轻松处理文件。以只读模式`'r'`为例,使用`with`语句打开并读取文件内容;写入文件则用`'w'`或`'a'`模式。文件对象还支持高级功能,如文件指针移动,允许随机访问。掌握这些技能能提升开发效率。
36 0
|
3月前
|
存储 Python
Python文件操作
Python文件操作
|
3月前
|
存储 安全 Python
30天拿下Python之文件操作
30天拿下Python之文件操作
34 1
|
3月前
|
监控 安全 Java
文件操作不再难!Python系统编程实战,带你轻松驾驭文件系统与I/O
【9月更文挑战第13天】在Python系统编程中,文件操作与I/O管理至关重要。本文通过五个实战案例分享最佳实践:高效遍历文件系统、优雅处理文件读写、利用缓冲机制优化性能、并行处理文件加速任务以及异常处理确保程序稳健。使用pathlib、上下文管理器及concurrent.futures等工具,助你轻松掌握Python文件系统与I/O操作,提升编程效率和项目质量。 示例代码展示了如何使用pathlib遍历目录、with语句安全读写文件、控制缓冲区大小、并行处理多个文件以及捕获异常保证程序稳定运行。通过这些技巧,你将能够在实际项目中更加高效地管理和操作文件。
48 6
|
2月前
|
Java 程序员 Python
【Python】文件操作
【Python】文件操作
22 0
|
4月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作
本文介绍了Python中的文件操作方法,包括使用open()打开文件、close()关闭文件、read()读取内容、readline()读取单行、readlines()读取多行、write()写入内容以及writelines()写入多行的方法。同时,探讨了文件操作模式和编码问题,并扩展了上下文管理器with...as的使用,以及对图片和音频文件操作的思考和练习。
33 1
Python接口自动化测试框架(基础篇)-- 不只是txt的文件操作