课上笔记(4)(Python)

课上笔记(4)(Python)

  • 学习使我快乐
文件的打开与关闭
文件处理的步骤:打开,操作,关闭

在不对文件进行任何处理时,文件处于存储状态
如果要对该文件进行处理,首先我们要使该文件处于占用状态
存储状态 ←———— 文件存储在硬盘中(个人理解成:等活)
占用状态 ←———— 只有一个程序可以对该文件进行处理(个人理解成:垄断)
而打开(open),关闭(close)就是对 存储状态 和 占用状态 进行 状态转换 的

  • open:
    固定格式是:open(‘文件名.文件格式’, ‘打开方式’)
    打开方式分为:
    r :只读
    w :覆盖掉原有,进行重写
    a :在原有上进行添加
    b :二进制打开(与其他模式混合使用)比如:f = open(‘a.txt.txt’, ‘rb’)
    +:读,写(与其他模式混合使用)比如:f = open(‘a.txt.txt’, ‘r+’)
文件名:a.txt
其内容:
abc123

输入:
	f = open('a.txt.txt', 'r')
	print(f.read())
	f.close()	

输出:
	abc123
在打开文件以后,我们可以对其进行读和写的操作,常见的读文件函数和写文件函数如下
读文件函数:
  • f.read(x) ←———— 读取文件中前x个字节,可省略,如省略则读取所有内容
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'r')
	print(f.read(10))
	f.close()

输出:
	abc 123
	ab
  • f.readline() ←———— 从文件中读取第一行内容作为结果返回
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'r')
	print(f.readline())
	f.close()

输出:
	abc 123
  • f.readlines() ←———— 把文件的每行作为一个字符串塞进列表返回
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'r')
	print(f.readlines())
	f.close()

输出:
	['abc 123\n', 'abc 1234\n', 'abc 12345']
写文件函数:
  • write ←———— 把字符串s的内容写入文本文件
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a')
	s = 'abc\n123'
	f.write(s)
	f.close()

运行:
	文件名:a.txt
	其内容:
	abc 123
	abc 1234
	abc 12345abc
	123
  • writelines(s) ←———— 把字符串列表写入文本文件
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'r+')
	s = ['abc 123\n', 'abc 456']
	f.writelines(s)
	f.close()
运行:
	文件名:a.txt
	其内容:
	abc 123
	abc 1234
	abc 12345abc 123
	abc 456
关于文件的对象属性的一些操作方法:
  • seek ←———— 更改指针的位置
    两个参数,一个是偏移量,一个是基准量(默认为0为从文件头开始,1为当前位置,2为文件末尾开始计算)
    公式:seek(x,y)x是推移的字节数,y是从哪里开始计算偏移
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345
输入:
	f = open('a.txt.txt', 'r')
	print(f.read(3))
	print('————')
	print(f.read(3))
	seek(2, 0)
	print(f.read(3))
	f.close()

输出:
	abc
	————
	 12
	c 1
不知道为什么

y不能是非0!。y可以是0,但是y不能是非0!

相当于是y可以存在,但是y只能是0!
否则报错:
io.UnsupportedOperation: can’t do nonzero cur-relative seeks
seek就是把指针从y(0:从头,1:从当前,2:从末尾)向后推x个字节
  • 从头开始
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345
输入:
	f = open('a.txt.txt', 'r')
	print(f.read(3))
	print('————')
	f.seek(1,0)
	print(f.read(3))
	f.seek(2,0)
	print(f.read(3))
	f.close()

输出:
	abc
	————
	c 1
	bc 
  • closed ←———— 判断文件是否关闭,关闭则返回True
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a')
	print(f.closed)
	f.close()
	print(f.closed)

输出:
	False
	True
  • mode ←———— 返回文件的打开模式
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a')
	print(f.mode)
	f.close()

输出:
	a
  • name ←———— 返回文件的名称
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a')
	print(f.name)
	f.close()

输出:
	a.txt.txt
关闭文件的方法:
  • close ←———— 把缓存区的内容写入文件,关闭文件
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a+')
	print(f.read())
	s = 'abc\n123'
	f.write(s)
	f.close()
	print('close以后')
	print(f.read())
输出:
	abc 123
	abc 1234
	abc 12345
	close以后
	报错:
	ValueError: I/O operation on closed file.
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345abc
123
  • flush ←———— 把缓存区的内容写入文件,但是不关闭文件
文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345

输入:
	f = open('a.txt.txt', 'a+')
	s = 'abc\n123'
	f.write(s)
	print(f.read())
	f.flush()
	print('flush以后')
	print(f.read())
	f.close()
运行:
输出:
	abc 123
	abc 1234
	abc 12345
	flush以后
	abc 123
	abc 1234
	abc 12345abc
	123

文件名:a.txt
其内容:
abc 123
abc 1234
abc 12345abc
123
os
  • os.getcwd ←———— 返回当前工作地址
    注:encoding=‘utf-8’是给当前文字段编码方式转码为utf-8
import os
a = os.getcwd()
f = open(a+"\\a.txt.txt", 'r', encoding='utf-8')
print(f.read())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值