python怎么读文件后删去空格以行为单位进行排序-文件操作

day15回顾

迭代器

iter(iterable) 返回迭代器

next(iterator) 返回可迭代对象提供的数据,当没有数据时触发StopIteration异常通知

生成器:

两种:

生成器函数

生成器表达式

生成器函数

def 函数():

#语句内部有

yield语句

gen = myyield()

it = iter(gen)

next(it) 才让 myyield()函数执行,并遇到yield语句

生成器表达式:

(x ** 2 for x in range(10) if xxx)

迭代工具函数:

zip(iter1, *iterable)

enumerate(iterable, start=0)

字节串bytes(不可变) / 字节数组 bytearray(可变)

b'',bytes() / bytearray(b''),bytearray()

b'abc',bytes(b'abc') / bytearray(b'abc')

bytes(10) / bytearray(10)

bytes('abc', 'utf-8') / bytearray('abc', 'utf-8')

bytes(range(65, 90)) / bytearray(range(65, 90))

+ += * *=

< > <= >= == !=

in / not in

索引 / 切片

len(x) / max(x) / min(x) /sum(x) / any(x) / all(x)

day16笔记

文件 File

什么是文件

文件是用于数据存储的单位

文件通常用来长期存储数据

文件中的数据是以字节(byte)为单位进行存储的

文件的操作流程:

1. 打开文件

2. 读/写文件

3. 关闭文件

注:任何操作系统,一个应用程序同时打开文件的数量有最大数限制

文件的打开函数:

open(file, mode='rt') 用于打开一个文件,返回此文件对应的文件流对象,如果打开失败则会触发OSError错误

文件的关闭方法:

F.close() # 关闭文件,释放系统资源

示例见:

file_open.py

文本文件的操作:

文本文件的模式字符 't'

说明:

1. 对文本文件的读写需要用字符串str 进行读取和写入数据

2. 默认文件中存储的都是字符(文字)数据,在读写中会自动进行编码转换操作

3. 以行为单位分隔,在python内统一用' '作用换行符进行分隔

各操作系统的换行符:

Linux换行符: ' '

Windows 换行符: ' '

旧的Macintosh换行符: ' '

新的Mac OS 换行符: ' '

文件流对象常用的方法见:

python_base_docs_html/文件.html

练习:

自己写一个文件 'info.txt' 内部存一些文字信息如下:

张三 20 100

李四 21 96

小王 20 98

注:

以上信息用空格作用分隔符分开

写程序将这些数据读取出来,并以如下格式打印出来:

张小 今年 20 岁,成绩是: 100

李四 今年 21 岁,成绩是: 96

小王 今年 20 岁,成绩是: 98

文本文件读方法:

F.readline()

F.readlines()

F.read([字符数或字节数])

文本文件的写方法

模式字符串: 'w'/'x'/'a'

F.write(字符串)

F.writelines(字符串列表)

示例见:

file_write_text.py

文件的迭代读取

文件流对象是可迭代对象,迭代过程将以换行符' '作用分隔符依次获取

示例:

f = open('mynote.txt', 'rt')

for line in f: # f绑定的文件流对象是可迭代对象

print(line)

练习:

1. 写程序,读入任意行文字,当输入空行时结束输入

先将这些读入的文字存入列表中, 然后再将列表里的内容存入到'input.txt'文件中

2. 写程序,从上题的input.txt中读取之前输入的数据,读取到列表中,再加上行号进行输出

标准输入输出文件:

sys.stdin 标准输入文件(默认为键盘设备)

ctrl + d 快捷键是让键盘输入文件结束符

sys.stdout 标准输出文件 (默认为屏幕终端)

sys.stderr 标准错误输出文件(默认为屏幕终端)

模块名: sys

说明:

1. 标准文件不需要打开和关闭就可以使用

2. 每一个python程序启动后都会有以上三个文件供我们使用

示例见:

stdin.py

stdin2.py

stdout.py

二进制文件操作:

模式字符: 'b'

默认文件中存储的都是以字节为单位的数据,通常有人为的格式

对二进制文件的读写需要用字节串(bytes) 进行操作

常用的操作方法:

F.read([字节数/字符数])

对于文本文件, F.read()返回类型为字符串str

对于二进制文件,F.read()返回类型为字节串bytes

F.write()

同上,对于二进制文件,写入的数据为字节串bytes或bytearray

F.tell() 方法

返回当前文件流的读写位置(从0开始,以字节为单位)

F.seek方法

作用:

设置文件的读写位置

格式:

F.seek(偏移量, whence=相对位置)

偏移量

大于0代表向文件尾方向移动

小于0代表向文件头方向移动

相对位置

0 代表从文件头开始偏移

1 代表从当前位置开始偏移

2 代表从文件尾开始偏移

示例见:

seek.py

汉字编码(只讲两种)

问题:

十个汉字占多少个字节?

20个(GBK编码)

30个(UTF-8编码)

国标编码

GB18030(二字节或四字节编码, 27533个字)

GBK(二字节编码 21003个字)

GB2312(二字节编码 6763个字)

(Windows上常用)

国际标准:

UNICODE <---> UTF-8

(Linux / Mac OS X / IOS / Android常用)

UTF-8 (8-bit Unicode Transformation Format)

python的编码(encode)字符串:

'gb2312'

'gbk'

'gb18030'

'utf-8'

'ascii'

编码注释:

在源文件中第一行或第二行写入如下内容为编码注释

# -*- coding:gbk -*-

# 设置源文件编码格式为:gbk

# -*- coding:utf-8 -*-

# 设置源文件编码格式为:utf-8

作用:

告诉解释执行器,当前的.py文件的编码格式是什么

练习:

1. 写程序,让用户输入一系列整数,当输入小于零的数时结束输入

1) 将这些数字存于列表中

2) 将列表中的数字写入到文件numbers.txt中

(提示:需要将整数转为字符串或字节串才能存入文件中)

2. 写程序,将上题的numbers.txt中的整数读入到内存中形成列表

计算这些数中的最大值,最小值和它们的和

3. 写程序,实现复制文件功能

要求:

1) 要考虑关闭文件问题

2) 要考虑超大文件复制问题

3) 要能复制二进制文件(如:/usr/bin/python3 等文件)

4. 将学生信息管理程序添加两个功能:

| 9) 保存信息到文件(si.txt) |

| 10) 从文件中读取数据(si.txt) |

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值