摘要

文件操作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 65
B 66
C 67
...
x 120
y 121
z 122

#字典dic3
dic3 = {'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]))


posted on 2017-12-29 00:17  siaspedro  阅读(126)  评论(0编辑  收藏  举报