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方法被调用!
我是方法
销毁中~

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

目录
相关文章
|
19天前
|
Python
Python文件操作学习应用案例详解
【4月更文挑战第7天】Python文件操作包括打开、读取、写入和关闭文件。使用`open()`函数以指定模式(如'r'、'w'、'a'或'r+')打开文件,然后用`read()`读取全部内容,`readline()`逐行读取,`write()`写入字符串。最后,别忘了用`close()`关闭文件,确保资源释放。
21 1
|
19天前
|
存储 JSON 数据管理
文件操作与管理:用Python读写数据
【4月更文挑战第8天】本文介绍了Python中进行高效文件操作与数据管理的方法。通过`os`模块管理目录,使用`open`函数读写文件,`pickle`模块保存和加载复杂数据结构。示例代码展示了如何读取和写入文本文件,处理CSV和JSON数据,以及利用`pickle`序列化和反序列化Python对象。掌握这些技能对于处理现代社会中的数据至关重要。
|
5天前
|
Python
Python文件操作技术详解
Python文件操作技术详解
15 1
|
9天前
|
存储 API Python
Python文件操作:深入解析与实例
Python文件操作:深入解析与实例
|
13天前
|
存储 传感器 Python
Python编程作业四:文件操作
Python编程作业四:文件操作
40 0
|
13天前
|
Python
Python基础 笔记(十) 文件操作、异常、模块
Python基础 笔记(十) 文件操作、异常、模块
28 3
|
13天前
|
存储 编解码 Python
初出茅庐,python模块篇:pickle模块和pathlib模块(太过详细,篇幅较长)_python文件操作模块有pickle模块
初出茅庐,python模块篇:pickle模块和pathlib模块(太过详细,篇幅较长)_python文件操作模块有pickle模块
|
19天前
|
存储 JSON 安全
Python中的文件操作与文件IO操作
【5月更文挑战第14天】在Python中,文件操作是常见任务,包括读取、写入和处理文件内容。`open()`函数是核心,接受文件路径和模式(如'r'、'w'、'a'、'b'和'+')参数。本文详细讨论了文件操作基础,如读写模式,以及文件IO操作,如读取、写入和移动指针。异常处理是关键,使用`try-except`捕获`FileNotFoundError`和`PermissionError`等异常。进阶技巧涉及`with`语句、`readline()`、`os`和`shutil`模块。数据序列化与反序列化方面,介绍了
26 0
|
19天前
|
Python
【Python操作基础】——文件操作
【Python操作基础】——文件操作
|
19天前
|
安全 Linux Python