摘要
文件操作IO
目的
- 掌握文件操作的一般方法
- 循环打印文件
内容
文件打开关闭
- 文件打开 使用open()函数打开文件,创建了一个文件对象,可进行读写
#语法file object = open(file_name [, access_mode][, buffering])参数含义:file_name:访问的文件,注意路径access_mode:打开文件的模式,只读、只写、追加,详情见表buffering:寄存,默认为0,不寄存。如果buffering的值取1,访问文件时会寄存行。如果将buffering的值设为大于1的整数,表明了这就是的寄存区的缓冲大小。如果取负值,寄存区的缓冲大小则为系统默认
模式 | 描述 |
---|---|
r | 只读,指针放在文件开头 |
w | 只写、文件存在将其覆盖,否则创建新文件 |
a | 追加,文件存在,指针指向末尾,不存在,创建并写入 |
b | 二进制 |
w+ | 读写,若不存在则创建 |
r+ | 读写 |
a+ | 读写,指向末尾 |
- 关闭文件 close()
常见操作
- write() 任何字符串写入一个打开的文件,不在末尾添加换行符
- read() 打开的文件中读取一个字符串,全部内容
- readline 只读一行
- readlines 读取全部返还是一个列表,元素为每一行
- tell()方法告诉你文件内的当前位置
- seek(offset [,from])方法改变当前文件光标的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
- os.rename(current_file_name, new_file_name) 重命名
- remove()删除文件
#例子F = open('1.txt','w+')#写入# F.write('123')# F.write('a')# for循环输出文件全部内容for line in F: print(line),F.close()#while 方法循环输出文件内容Fw = open('1.txt','rb')while True: line = Fw.readline() if not line: break print(line),
with open
try: f = codecs.open('1.txt','r') print(f.read())finally: f.close() 等价于with codecs.open('1.txt','r') as f: print(f.read()) with open 是做了异常处理的一般文件操作的方法
总结
- 文件io操作的一般方法
- 循环打印文件内容
习题完成情况
#1. 现有一个文件test.txt ,内容如下:#1234efgh##要求读出文件内容,对内容的顺序进行编辑,然后重新写入到文件,使其为如下形式#12345678#abcdefgh#列表存数据L = []#打开文件写入到一个列表with open('1.txt','r') as f: for line in f.readlines(): L.append(line)#列表排组合出想要元素print(L)L1 = L[0][:4] + L[1][4:]print(L1)L2 = L[0][4:-1] + L[1][:4]print(L2)#写入文件with open('1.txt','w') as fw: fw.write(L1 + '\n') fw.write(L2)#2. 将上周五生成的dict3,排序后写入到文件dict.txt中,要求格式为A 65B 66C 67...x 120y 121z 122#字典dic3dic3 = {'A': 65, 'C': 67, 'B': 66, 'E': 69, 'D': 68, 'G': 71, 'F': 70, 'I': 73, 'H': 72, 'K': 75, 'J': 74, 'M': 77, 'L': 76, 'O': 79, 'N': 78, 'Q': 81, 'P': 80, 'S': 83, 'R': 82, 'U': 85, 'T': 84, 'W': 87, 'V': 86, 'Y': 89, 'X': 88, 'Z': 90, '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': 111, 'n': 110, 'q': 113, 'p': 112, 's': 115, 'r': 114, 'u': 117, 't': 116, 'w': 119, 'v': 118, 'y': 121, 'x': 120, 'z': 122}#打开一个文件追加的模式with open('2.txt','a') as f: #字典的keys、values 排序存入一个list L1 = sorted(dic3.keys()) L2 = sorted(dic3.values()) print L1 print L2 #写入文件 for i in xrange(0,len(L1)): f.write('{0} {1} \n'.format(L1[i], L2[i]))