python基础 刻意练习 task07文件与文件系统 by littlecircle327

这篇博客主要介绍了Python中的文件操作,包括文件的打开、文件对象的方法,如read、write、seek等,以及OS模块中常用的文件/目录函数,如getcwd、chdir、listdir等。此外,还探讨了序列化与反序列化的基本概念,特别是pickle模块的使用。
摘要由CSDN通过智能技术生成

python基础 刻意练习

17天打卡内容

Task01:变量、运算符与数据类型(1day)
Task02:条件与循环(1day)
Task03:列表与元组(2day)
Task04:字符串与序列(1day)
Task05:函数与Lambda表达式(2day)
Task06:字典与集合(1day)
Task07:文件与文件系统(2day)
Task08:异常处理(1day)
Task09:else 与 with 语句(1day)
Task10:类与对象(2day)
Task11:魔法方法(2day)
Task12:模块(1day)


2020.1.18

Task07 文件与文件系统

老马链接


1、打开文件

open(file, mode=‘r’) 接收两个参数:文件名(file)和模式(mode),用于打开一个文件,并返回文件对象,如果该文件无法被打开,会抛出OSError。

完整的语法格式为:
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None)
file: 必需,文件路径(相对或者绝对路径)。
mode: 可选,文件打开模式
buffering: 设置缓冲
encoding: 一般使用utf8
errors: 报错级别
newline: 区分换行符
打开模式
r模式不能写,w模式会覆盖,不要轻易用,而要用a,另外还有一个U模式,通用换行符支持

f = open('将进酒.txt')
print(f)
# <_io.TextIOWrapper name='将进酒.txt' mode='r' encoding='cp936'>

for each in f:
    print(each)

# 君不见,黄河之水天上来,奔流到海不复回。
# 君不见,高堂明镜悲白发,朝如青丝暮成雪。
...
2. 文件对象方法

fileObject.close() 用于关闭一个已打开的文件
关闭后的文件不能再进行读写操作, 否则会触发ValueError错误。目的好像是帮助你及时保存。

fileObject.read([size]) 用于从文件读取指定的字符数
如果未给定或为负则读取所有。
fileObject.readline()读取整行,包括 “\n” 字符。
fileObject.readlines()用于读取所有行(直到结束符 EOF)并返回列表
该列表可以由 Python 的 for… in … 结构进行处理。
list 可以list文件,直接出内容。

fileObject.tell()返回文件的当前位置,即文件指针当前位置

fileObject.seek(offset[, whence])用于移动文件读取指针到指定位置(偏移指针)
offset:开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。
whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。

fileObject.write(str)用于向文件中写入指定字符串,返回的是写入的字符长度
能写入’w’才能写,写了关了才能存

官方推荐的读取全部的文档描述方法
f.seek(0,0)
for each_line in f:
print (each_line)

fileObject.writelines(sequence)向文件写入一个序列字符串列表
如果需要换行则要自己加入每行的换行符\n。

f = open("将进酒.txt") #打开的时候如果有斜杠最好是两个斜杠
print('FileName:', f.name)  # FileName: 将进酒.txt
f.close()

f = open('将进酒.txt', 'r')
line = f.read(20)
print("读取的字符串: %s" % line)
# 读取的字符串: 君不见,黄河之水天上来,奔流到海不复回。
line2 = f.readline()
print("%s" % line)
#  君不见,黄河之水天上来,奔流到海不复回。
pos = f.tell()
print(pos)  # 42

lines = f.readlines()
print(lines)
for each in lines:
    each.strip()  #strip是去掉首尾空格
    print(each)

# 君不见,黄河之水天上来,奔流到海不复回。
# 君不见,高堂明镜悲白发,朝如青丝暮成雪。
...
f.close()


f = open('将进酒.txt', 'r')
line = f.readline()
print(line)
# 君不见,黄河之水天上来,奔流到海不复回。
line = f.readline()
print(line)
# 君不见,高堂明镜悲白发,朝如青丝暮成雪。
f.seek(0, 0)
line = f.readline()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值