Python文件

1. 概念

计算机的文件, 就是存储在某种长期储存设备上的一段数据,长期存储设备包括: 硬盘、 U 盘、 移动硬盘、 光盘等。在计算机中,文件最终以二进制的方式存储在硬盘上。
文件分为文本文件和二进制文件。文本文件可以使用文本编辑器打开,本质还是二进制的文件;二进制文件不能使用文本编辑器打开,但是可以使用特殊的软件打开 ,如:图片、视频、音频等。

2. 文件操作步骤

step1: 打开文件
step2: 读、写文件
step3: 关闭文件

3. 文件操作方法

(1)打开文件: 文件对象名 = open("文件名","访问方式")
打开文件,并且返回文件操作对象。文件的读、写及关闭操作都需要通过文件对象来调用。
1) 访问方式:
r: 以只读方式打开文件,文件的指针会放在文件的开头,这是默认模式,若文件不存在则抛出异常。
w:以只写方式打开文件,若文件存在会覆盖文件,不存在则创建文件。
a:以追加方式打开文件,若文件存在,文件指针会放在文件末尾,若文件不存在则创建新文件。
r+:以读写方式打开文件,文件的指针会放在文件的开头,若文件不存在则抛出异常。
w+:以读写方式打开文件,若文件存在会覆盖文件,不存在则创建文件。
a+:以读写方式打开文件,若文件存在,文件指针会放在文件末尾,若文件不存在则创建新文件。

2)打开文件的编码格式:
在windows系统中使用open()函数时要指定编码格式, encoding=“utf-8” 设置打开文件的编码格式。
在linux/unix系统中使用open()函数时不需要指定编码格式,默认就是utf-8编码
注意: 频繁的移动文件指针,会影响文件的读写效率, 开发中更多的时候会以只读、 只写的方式来操作文件。

(2)读取文件: 文件内容 = 文件对象名.read()
使用file.read() 一次 将文件 所有内容 读取到内存中,读取的数据类型是 字符串 类型。read()执行后, 会把文件指针移动到文件的末尾。
如果文件太大,read()对内存的占用会非常严重,readline()可以一次读取一行内容,方法执行后, 会把文件指针移动到下一行,准备再次读取。

# 打开⽂件
file = open("text")
while True:
    # 读取⼀⾏内容
    text = file.readline()
    # 判断是否读到内容
    if not text:
        break
    # 每读取⼀⾏的末尾已经有了⼀个 `\n`
    print(text, end="")
    # 关闭⽂件
file.close()

(3)写入文件: 文件对象名. write(文件内容)
write()将指定内容写入文件中,默认写入字符串。

(4) 复制文件:
1)小文件复制:

# 1. 打开⽂件
file_read = open("README")
file_write = open("README[复件]", "w")
# 2. 读取并写⼊⽂件
text = file_read.read()
file_write.write(text)
# 3. 关闭⽂件
file_read.close()
file_write.close()

2)大文件复制:

fileRead = open("text")
fileWrite = open("text_copy","w")
while True:
    text = fileRead.readline()
    fileWrite.write(text)
    if not text:
        break
fileWrite.close()
fileRead.close()

(5)关闭文件资源: 文件对象名.close()
close()关闭文件资源,若忘记关闭文件资源会造成系统资源浪费。

4. 文件指针

文件指针标记从哪个位置开始读取数据,第一次打开文件时, 通常文件指针会指向文件的开始位置,当执行了 read 方法后, 文件指针会移动到读取内容的末尾。如果执行了一次 read 方法,读取了所有内容,再次调用 read 方法将不能读取到文件内容。

5. 文件/目录的常用操作

在终端 / 文件浏览器中可以执行常规的文件 / 目录管理操作,如:创建、 重命名、 删除、 改变路径、 查看目录内容等。在 Python 中, 如果希望通过程序实现这些功能,需要导入 os 模块。

(1)文件操作

  • 1)重命名文件: os.rename(原文件名,新文件名)
  • 2)删除文件: os.remove(文件名)

(2)目录操作

  • 1)目录列表:os.listdir(目录名)
  • 2)创建目录:os.mkdir(目录名)
  • 3)删除目录:os.rmdir(目录名)
  • 4)获取当前目录:os.getcwd()
  • 5)修改当前目录:os.chdir(目标工作目录)
  • 6)判断是否是文件夹:os.path.isdir(文件夹路径)
# 批量修改文件名
listfile = os.listdir("/Users/admin/Desktop/test")
for i in listfile:
    os.rename(i,i+"test")

6. eval 函数

将字符串当成有效的表达式来求值并返回计算结果。
注意: 在开发时不能使用 eval 直接转换 input 的结果。

# 把字符串转换成列表
type(eval("[1,2,3,4,5,6]")) # 结果:list

# 计算
eval("1 + 1") #结果:2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值