12月28日二周四次【Python基础语法】
2017-12-28 20:24
246 查看
2.6 使用for循环遍历文件
2.7 使用while循环遍历文件
r: 以只读方式打开
w: 以可写方式打开(文件不存在则创建,存在则覆盖内容)
a: 以追加模式打开,如果该文件不存在,创建新文件进行写入
r+: 打开一个文件用于读写
w+: 打开一个文件用于读写(参见W)
a+: 打开一个文件用于读写(参见a)
rb: 二进制读模式
wb: 二进制写模式(参见W)
ab: 二进制追加模式(参见a)
rb+: 以二进制格式打开一个文件用于读写(参见r+)
wb+: 以二进制格式打开一个文件用于读写(参见w+)
ab+: 以二进制格式打开一个文件用于读写(参见a+)
with open
1234efgh
abcd5678
要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式
12345678
abcdefgh
注意事项:使用pycharm的同学在调试程序时,如果程序对文件进行了操作,然后手动修改了文件,则要在pycharm中,程序所在的目录上点击右键,选择clean python compiled files,否则可能会报错
2 . 将上周五生成的dict3,排序后写入到文件dict.txt中,要求格式为
A 65
B 66
C 67
...
x 120
y 121
z 122
with open(r'D:\dict.txt','w') as f:
for k,v in dict3:
f.write(k + ' ')
f.write(str(v) + '\n')
2.7 使用while循环遍历文件
2.6 使用for循环遍历文件
打开文件
openr: 以只读方式打开
w: 以可写方式打开(文件不存在则创建,存在则覆盖内容)
a: 以追加模式打开,如果该文件不存在,创建新文件进行写入
r+: 打开一个文件用于读写
w+: 打开一个文件用于读写(参见W)
a+: 打开一个文件用于读写(参见a)
rb: 二进制读模式
wb: 二进制写模式(参见W)
ab: 二进制追加模式(参见a)
rb+: 以二进制格式打开一个文件用于读写(参见r+)
wb+: 以二进制格式打开一个文件用于读写(参见w+)
ab+: 以二进制格式打开一个文件用于读写(参见a+)
with open
## Win系统下打开文件 print(open(r'D:\111.txt')) ##################################### f = open(r'D:\1111.txt', 'w') # 以w方式打开,没有则会创建 f.write('sss') # 写入(覆盖)的内容;只接受字符串 f.close() # 关闭打开的文件;不关闭则会占用内存 ##################################### ## 读文件内容 f=open(r'D:\1111.txt','r').read() print(f) f.close() ##################################### f=open(r'D:\1111.txt','r').read(5) # 读取5个字符 print(f) f.close() ##################################### f=open(r'D:\1111.txt','r').readline() # 以行来读内容 print(f) f.close() ##################################### f=open(r'D:\1111.txt','r').readlines() # 读取多行,返回list print(f) f.close() ##################################### ## 逐行遍历 f=open(r'D:\1111.txt').readlines() for i in f: print("{}".format(i),end="") f.close() ##################################### ## 直接遍历;对内存开销小 f=open(r'D:\1111.txt') for i in f: print("{}".format(i),end="") f.close()
2.7 使用while循环遍历文件
## 遍历文件 f = open(r'D:\1111.txt') while 1: line = f.readline() if not line: break print(line) f.close() ########################################## ## 遍历文件 with open(r'D:\1111.txt') as f: # with open 会自动关闭文件 while 1: line = f.readline() if not line: break print(line)
习题
1 . 现有一个文件test.txt ,内容如下:1234efgh
abcd5678
要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式
12345678
abcdefgh
注意事项:使用pycharm的同学在调试程序时,如果程序对文件进行了操作,然后手动修改了文件,则要在pycharm中,程序所在的目录上点击右键,选择clean python compiled files,否则可能会报错
l1 = [] l2 = [] with open(r'D:\test.txt') as f: while 1: line = f.readline() if line: for i in line: if i.isdigit(): l1.append(i) elif i != '\n': l2.append(i) else: break l1.sort() l2.sort() with open(r'D:\test.txt','w') as f: for i in l1: f.write(i) else: f.write('\n') for i in l2: f.write(i) print("操作文成!")
2 . 将上周五生成的dict3,排序后写入到文件dict.txt中,要求格式为
A 65
B 66
C 67
...
x 120
y 121
z 122
import string s = 2 dict1 = {'a': 97, 'c': 99, 'b': 98, 'e': 101, 'd': 100, 'g': 103, 'f': 102, 'i': 105, 'h': 104, 'k': 107, 'j': 106, 'm': 109, 'l': 108, 'o': 96, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122} dict1['o'] = 111 dict1 = sorted(dict1.items(), key=lambda a:a[0]) dict1 = dict(dict1) dict2 = dict(zip(string.ascii_uppercase,range(65,92))) dict3 = dict(dict1, **dict2) dict3 = sorted(dict3.items(), key=lambda a:a[0])
with open(r'D:\dict.txt','w') as f:
for k,v in dict3:
f.write(k + ' ')
f.write(str(v) + '\n')
相关文章推荐
- 12月22日一周四次【Python基础语法】
- python基础语法(6) 函数1
- Python 基础语法
- Python基础语法02-运算符
- Python学习笔记(1):语法基础
- Python 基础语法(一)
- python个人笔记(一)基础语法
- python语法基础
- python入门(一):基础语法
- 2-python基础python的基本语法之if判断语句
- Python基础语法与C、JAVA差异点
- [python学习]“基础语法”(2017.11.27)
- python-第一课-入门语法(1)-基础部分
- python基础语法
- 从变量到封装:一文带你为机器学习打下坚实的Python基础 By 机器之心2017年10月13日 10:43 本文整体梳理了 Python 的基本语法与使用方法,并重点介绍了对机器学习十分重要的且常
- Python基础教程(二):基础语法、变量类型
- Python基础语法——函数(四)
- Python语法基础09.比较、关系运算符
- python基础语法(4) 字典
- Python基础教程之正则表达式基本语法以及re模块