python集合操作 读取_Python编程(三):集合(set())和文件操作

# 文件操作流程

# 1、打开文件,得到文件句柄并赋值给一个变量

# 2、通过句柄对文件进行操作

# 3、关闭文件

''''''

'''

# open()方法使用utf-8编码打开文件,read()方法读取文件到data变量。

#data = open("yesterday", encoding='utf-8').read()

#print(data)

# 打开文件对象,赋值给变量 f,此时可以对f进行各种各样操作

# 打开文件时使用'w'参数,会直接创建一个新文件,诺文件名有相同,会覆盖原文件

# 打开文件默认使用'r'参数,只读模式打开,要写入文件会报错

# 打开文件时使用'a'参数,a = append 追加,在文件末尾写入新内容,不能读文件

# 使用“r+”参数打开文件时,可读可写文件,写文件默认以追加方式在末尾写入,常用此方式打开文件

# 使用“w+”参数打开文件时,可写可读文件,首先新建文件,以追加方式写入文件,用seek()移动光标后,仍然在最后面追加写入

# 使用“a+”参数打开文件时,追加的是读

# 使用“rb”参数打开文件时,以二进制方式打开文件,此时不能给encoding参数,3.x在网络传输时只能是二进制文件,2.x可以是字符文件

# 使用“wb”参数打开文件时,以二进制方式打开文件,此时可以写入文件,在写入的字符串末尾要加(encode())方法

# “U”表示读取文件时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同时使用) rU, r+U

f = open("yesterday2", 'a',encoding='utf-8') #文件句柄:有文件名、大小、内存地址、硬盘上的起始和结束位置

#data = f.read() # 在读文件的时候,文件指针已经到了文件末尾,即光标到了末尾

#data2 = f.read() # 这次在读文件的时候,指针已到末尾,不会读到传到内容

#print(data)

#print("---------------data2---------------%s" % data2)

f.write("我爱北京天安门,............\n") #向文件写入内容

f.write("天安门上太阳升....\n") #向文件写入内容

f.close()

'''

# 用with方法打开文件,方法如下:

# with open(file1) as f1, open(file2) as f2,...: #可同时打开多个文件,使用完后文件自动关闭

# 当对一个文件需要进行修改操作时,需要打开另一个文件保存修改后的文件,还不能在原文件上进行修改保存操作

f =open("yesterday", 'r',encoding='utf-8')

print(f.tell())# tell()方法返回文件的光标位置,默认是从0开始

print(f.read(5))# 读取文件的前5个字符

print(f.tell())# 此时tell()方法返回的是5

print(f.readlines())# 读取全部文件

print(f.tell())# 此时光标指针指向文件末尾

print(f.seek(0))# 回到文件的起始位置

print(f.readline())# 读取文件的第一行

print(f.encoding)# 文件的编码

print(f.fileno())# Python通过操作系统的I/O读文件,操作系统分配的这个编号是fileno()返回的数字

print(f.name)# 返回文件的名字

print(f.isatty())# 判断是否是终端设备

print(f.seekable())# 判断光标是否可以移动,在Linux下,设备文件的光标不能移动

print(f.readable())# 判断文件是否可读

print(f.writable())# 判断文件是否可写

f.truncate(20)# 截断文件,从文件开始部分,按照参数给定的个数截断文件,剩下的字符被删除

#print(f.flush()) # 强制将缓存上的内容存储到硬盘上

'''

# flush()方法用法介绍,显示进度条的方式

import sys, time

for i in range(20):

sys.stdout.write("#")

sys.stdout.flush()

time.sleep(0.5)

'''

print(f.buffer)# 文件的内存信息

'''

for index, line in enumerate(f.readlines()): #readlines()方法将文件内容全部读取到一个列表中,操作小文件还可行

if index == 9:

print('-------分隔线------------')

continue

print(line.strip())

#for i in range(5): #读取5行

# print(f.readline()) #readline()方法,一次读取一行

'''

'''

count = 0

for line in f: # 一次读取一行,占内存少,对于大文件用这种方式读,效率高

if count == 9: # 不打印文件的第10行

print('---------分隔线-----------')

count += 1

continue

print(line.strip())

count += 1

'''

f.close()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值