【python | linux06】python中文件的开关及读写定位

简介: 文件作用:就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,加载到内存中,而不必重新制作一份,省时省力。在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式).........

 🍁作者简介:🏅云计算领域优质创作者🏅新星计划第三季python赛道TOP1🏅 阿里云ACE认证高级工程师🏅

✒️个人主页:小鹏linux

💊个人社区:小鹏linux(个人社区)欢迎您的加入!

目录

🐊1.文件操作介绍

🦓1.1文件作用

🦓1.2打开文件open

🐊2.文件的开关及读写

🦓2.1文件的读写:

🐅2.1.1写数据(write):

🐅2.1.2读数据(read):

🐅2.1.3读数据(readlines):

🦓2.2举例

🐅2.2.1练一练1

🐅2.2.2练一练2

🐅2.2.3练一练3

🦓2.3文件读写定位

🐅2.3.1python2 中的 seek

🐅2.3.2python3 中的 seek

结束语🏆🏆🏆


1.文件操作介绍

1.1文件作用

就是把一些数据存放起来,可以让程序下一次执行的时候直接使用,加载到内存中,而不必重新制作一份,省时省力

1.2打开文件open

在Python,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件open(文件名,访问模式)

示例如下:  f = open( 'test.txt', 'w')

w 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

访问模式

说明

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。如果文件不存在会崩溃。Read

w

打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。Write

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。如果文件不存在会崩溃 read binary

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。如果文件不存在会崩溃

w+

打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。如果文件不存在会崩溃。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写

2.文件的开关及读写

2.1文件的读写:

2.1.1写数据(write):

使用write()可以完成向文件写入数据:

f.write(hello world!\n)

2.1.2读数据(read):

使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度( 单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。

f.read()

2.1.3读数据(readlines):

就像read没有参数时一样,readlines 可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素.

2.2举例

f = open("text.txt","w",encoding="utf-8")
f.write("hello  大家好!")
f.close()
f = open("text.txt","r",encoding="utf-8")
print(f.read())
f.close()      # 关闭这个文件

image.gif

需求描述:2.2.1练一练1

输入文件的名字,然后程序自动完成对文件进行拷贝

例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,

会把“test.txt”文件的内容复制一份到文件名叫“[复制]-test.txt”文件中。

#打开要复制的文件
oldFileName = input("请输入您要复制的文件名:")
oldFile = open(oldFileName,"r",encoding="utf-8")
#创建一个新文件用于保存要复制的内容
newFileName = "[复制]-"+oldFileName
newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中
newFile.write(oldFile.read())
#关闭两个文件
oldFile.close()
newFile.close()

image.gif

2.2.2练一练2

需求描述:

输入文件的名字,然后程序自动完成对文件进行拷贝

例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,

会把“test.txt”文件的内容复制一份到文件名叫“test[复制].txt”文件中。

#打开要复制的文件
oldFileName = input("请输入您要复制的文件名:")
oldFile = open(oldFileName,"r",encoding="utf-8")
#用于分割文件名
#1.得到.的位置
position = oldFileName.rfind(".")
#2.得到.之前的部分
pre = oldFileName[:position]
#3.得到.之后的部分,包含点
sux = oldFileName[position:]
#4.拼接一个新的名字
newFileName = pre+"[复制]"+sux
#创建一个新文件用于保存要复制的内容
newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中
newFile.write(oldFile.read())
#关闭两个文件
oldFile.close()
newFile.close()

image.gif

支持超大文件的复制支持超大文件的复制

2.2.3练一练3

需求描述:

输入文件的名字,然后程序自动完成对文件进行拷贝

例如,程序运行后提示“请输入你要拷贝的文件名:”,当你输入“test.txt”的时候,

会把“test.txt”文件的内容复制一份到文件名叫“test[复制].txt”文件中

#打开要复制的文件
oldFileName = input("请输入您要复制的文件名:")
oldFile = open(oldFileName,"r",encoding="utf-8")
#用于分割文件名
#1.得到.的位置
position = oldFileName.rfind(".")
#2.得到.之前的部分
pre = oldFileName[:position]
#3.得到.之后的部分,包含点
sux = oldFileName[position:]
#4.拼接一个新的名字
newFileName = pre+"[复制]"+sux
#创建一个新文件用于保存要复制的内容
newFile = open(newFileName,"w",encoding="utf-8")
#读取要复制的文件,并写入到新文件中
#增加支持大文件复制
while True:
readContent = oldFile.read(1024)
if len(readContent) == 0:
break
newFile.write(readContent)
#关闭两个文件
oldFile.close()
newFile.close()

image.gif

2.3文件读写定位

获取当前读写的位置 tell

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

置 定位到某个位置 seek

使用 seek()

seek(offset, from)有 2 个参数

offset:偏移量

from:方向

0:表示文件开头 1:表示当前位置 2:表示文件末尾

2.3.1python2 中的 seek

定位到文件开头:seek(0,0),seek(正数,0) ;不支持 seek(负数,0)

定位到当前位置:seek(0,1),seek(正数,1) ,(负数,1)

定位到文件末尾:seek(0,2),seek(正数,2) ,(负数,2)

2.3.2python3 中的 seek

Python3 中的 seek:

定位到文件开头:seek(0,0),seek(正数,0) ;不支持 seek(负数,0)

定位到当前位置:seek(0,1) ;不支持 seek(正数,1),(负数,1)

定位到文件末尾:seek(0,2) ;不支持 seek(正数,2),(负数,2)

f = open("test.txt","r",encoding="utf-8")

str = f.read(3)

print("读取的数据是:",str)

#查找当前位置

position = f.tell()

print("当前文件位置:",position)

#重新设立位置

f.seek(8,0)

#查找当前位置

position = f.tell()

print("当前文件位置:",position)

f.close()

👑👑👑结束语👑👑👑

image.gif

目录
相关文章
|
1天前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
25天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
56 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
11天前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
77 14
|
10天前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
41 6
|
12天前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
59 6
|
23天前
|
计算机视觉 Python
如何使用Python将TS文件转换为MP4
本文介绍了如何使用Python和FFmpeg将TS文件转换为MP4文件。首先需要安装Python和FFmpeg,然后通过`subprocess`模块调用FFmpeg命令,实现文件格式的转换。代码示例展示了具体的操作步骤,包括检查文件存在性、构建FFmpeg命令和执行转换过程。
38 7
|
2月前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
44 5
|
2月前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
57 6
|
2月前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
142 6
|
2月前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
208 4