【进阶系列】python文件的简单操作

目录

文件是啥?

文本文件

二进制文件

文件的位置——路径

文件操作(重点来了)

打开文件open

读取文件

写入文件

关闭文件

with语句

文件指针定位

目录操作 (浅讲)

习题💯

未完待续(持续更新中🏆)


Python 提供了丰富的文件操作功能,允许你读取、写入、追加、删除文件以及管理文件路径等。

文件是啥?

windows系统下大致分为以下几种:

  1. 文本文件:包含可读字符的文件,如.txt .csv .py .html等
  2. 二进制文件:包含不可直接读的原始二进制数据的文件,如.exe .jpg .mp3等
  3. 可执行文件:可以被操作系统执行的文件,如.exe
  4. 数据文件:用于存储应用程序数据的文件,如数据库文件、配置文件等
  5. 目录/文件夹:用于组织和管理其他文件的特殊文件

这里我们着重讲一下文本文件和二进制文件

文本文件

  • 文本文件是由单一特定编码组成的文件,如UTF-8编码。
  • 由于存在编码,文本文件也被看成是存储着数据的长字符串

二进制文件

  • 直接由比特0和1组成,没有统一字符编码
  • 一般都存在二进制0和1的组织结构,即文件格式
s = "这是一串数据"

print("文本文件:", s)
print("二进制文件:", s.encode())

文件的位置——路径

加入我们以后做了一个脚本,我们是如何让程序有条不紊地在别人的电脑上也运行呢,这就涉及的到绝对路径和相对路径的概念了,每个人的同一种文件在各自电脑上存放的绝对路径都可能不一样,所以脚本软件这类多用相对路径

绝对路径:

带有盘符的或者带有网址的

C:\Users\admin\Desktop\py_gj\py_day3

相对路径:

./py_gj/py_day3

../py_gj/py_day3

文件操作(重点来了)

打开文件open

open(file, [mode='r', buffering=-1, encoding=None])

参数:

  • file: 必需,文件路径(相对或者绝对路径)
  • mode: 可选,文件打开模式,默认为r
  • buffering: 可选,设置缓冲
  • encoding: 可选,一般使用utf-8

其中

常见的模式包括:

  • 'r':读取模式(默认)。
  • 'w':写入模式,会覆盖文件内容。
  • 'a':追加模式,会在文件末尾追加内容。
  • 'b':二进制模式,用于非文本文件(如图片)。
  • '+':更新模式,比如 'r+' 表示可读可写。

读取文件

# 读取整个文件内容
content = file.read()

# 读取文件的一行
line = file.readline()

# 读取文件的所有行,并返回一个列表
lines = file.readlines()

注意: readline()方法会记住上一个readline()读取的位置,接着读取下一行。 

# 读取整个文件内容
content = file.read()

# 读取文件的一行
line = file.readline()

# 读取文件的所有行,并返回一个列表
lines = file.readlines()

readlines读取文件的所有行,返回值是一个列表

写入文件

使用 write() 方法将内容写入文件(在 'w' 或 'a' 模式下)

file = open('example.txt', 'w')
file.write('Hello, World!\n')
file.close()

关闭文件

完成文件操作后,应使用 close() 方法关闭文件,以释放系统资源。

file.close()

with语句

with 语句可以确保文件在使用后自动关闭,即使在文件操作过程中发生异常。

with open('example.txt', 'r') as file:
    content = file.read()

文件指针定位

python中文件读写,定位文件读写的指针会随着不断地读写而移动。所以我们想要正确的读写,就需要控制指针的定位。

f.tell()
功能:返回文件的当前位置,即文件指针当前位置

f.seek(offset[, whence])
功能:将文件内部光标定位到指定的位置
参数:offset:开始的偏移量,也就是代表需要移动偏移的字节数
     whence:可选,默认值为 0,
	  
             0代表从文件开头开始算起
	  
             1代表从当前位置开始算起
	  
             2代表从文件末尾算起
eg:
f.seek(p,0)  移动到文件第p个字节处,绝对位置

f.seek(p,1)  移动到相对于当前位置之后的p个字节

f.seek(p,2)  移动到相对文章尾之后的p个字节


f.seek(0,0)  移动到文件开头
             

目录操作 (浅讲)

import os

try:
    os.mkdir('./t1')
except Exception as e:
    print(e)

try:
    os.rmdir('./t1')
except Exception as e:
    print(e)

try:
    os.makedirs('./t1/t2')
except Exception as e:
    print(e)

习题💯

将 1-100 之间能被 5 整除的数保存在列表 numbers 中 
1. 将 numbers 中的元素写入到文件 num.txt 中 
2. 使用文件操作方式打开 num.txt 文件读取内容,并计算它们的平均数

解答:(答案不统一)

numbers=[i for i in range(1,101) if i % 5 ==0]


with open('./6-9.txt', mode="w") as f:
    numbers_s=' '.join(map(str,numbers))
    f.write(numbers_s)

with open('./6-9.txt', mode='r',encoding='utf-8') as f:
    data = f.read()
    print(data)
    l2=list(map(int, data.split()))
    
pinjun=sum(l2)/len(l2)
print(pinjun)


未完待续(持续更新中🏆)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值