day3-文件操作
文件操作
一、文件操作流程
1. 打开文件,得到文件句柄赋值给一个变量
2. 通过文件句柄,对文件进行操作
3. 关闭文件
二、 文件操作模式
1 基本模式: 2 r #只读模式(默认) 3 w #只写模式(不可读,不存在则创建新文件,存在则删除内容) 4 a #追加模式(不可读,不存在则创建,存在则只追加内容) 5 "+"号表示同时读写某个文件: 6 r+,读写,读原来的文件追加 7 w+,写读,先创建一个文件然后读写 8 a+,追加读 9 "U"表示在读取文件时,可以把\r\n自动转化为\n(与 r 或 r+ 模式一同使用): 10 rU 11 r+U 12 "b"表示处理二进制文件: 13 rb 14 wb 15 ab
三、文件操作
1 f = open('test.txt','r') 2 # 输出文件编码 3 print(f.encoding) 4 # 输出文件名 5 print(f.name) 6 # 判断是否是一个终端设备,比如打印机 7 print(f.isatty()) 8 # 判断文件是否可读 9 # print(f.readable()) 10 # 判断文件是否可写 11 # print(f.writable()) 12 # 读取5个字符 13 print(f.read(5)) 14 # 获取句柄指针的位置 15 print(f.tell()) 16 # 判断是否可以移动指针 17 # print(f.seekable()) 18 # 设置句柄指针的位置 19 f.seek(2) 20 print(f.tell()) 21 # 输出文件句柄在内存中的编号 22 print(f.fileno()) 23 f.close() 24 # 判断文件是否关闭 25 print(f.closed) 26 27 f = open('test.txt','w') 28 # 写入文件,模式为w或a 29 f.write('long long a time') 30 # 强制立刻刷新到文件(本来需要保存的东西会先放入内存,一定时间后才会写入文件) 31 f.flush() 32 f.close() 33 34 f = open('test.txt','a') 35 # 以5为位置截断文件,模式必须为a 36 f.truncate(5) 37 f.close()
四、readline与readlines、文件迭代
1 # 读取一行文件 2 f = open('test.txt','r') 3 print f.readline() 4 f.close() 5 6 >>> 7 1 8 9 # 以列表的形式返回文件中的每一行 10 f = open('test.txt','r') 11 print f.readlines() 12 f.close() 13 14 >>> 15 ['1\n', '2\n', '3\n', '4\n', '5\n', '6'] 16 17 18 # 循环读取每一行,只适合小文件 19 f = open('test.txt','r') 20 for index,line in enumerate(f.readlines()): 21 if index == 3: 22 print "-"*20 23 continue 24 print line.strip() 25 f.close() 26 27 >>> 28 1 29 2 30 3 31 -------------------- 32 5 33 6 34 35 # 只保存一行,读一行删一行, 内存里只存一行,效率高, 文件变为迭代器,适合大文件 36 f = open('test.txt','r') 37 count = 0 38 for line in f: 39 count += 1 40 if count == 3: 41 print "-"*20 42 continue 43 print line.strip() 44 f.close() 45 46 >>> 47 1 48 2 49 -------------------- 50 4 51 5 52 6
五、with
为了避免打开文件后忘记关闭,可以通过管理上下文,即:
1 with open('log1') as obj1, \ 2 open('log2') as obj2: 3 pass

浙公网安备 33010602011771号