python---文件操作

学习文件操作

 1 # -*- coding:utf-8 -*-
 2 # LC
 3 
 4 f = open("lyrics","r",encoding="utf-8")           #以utf-8的编码方式打开文件,文件句柄
 5 data = f.read()         #读取文件内容
 6 
 7 f = open("lyrics","w",encoding="utf-8")         #以写的方式打开,且为创建一个文件
 8 f.write("今天上班
")
 9 f.write("明天下班
")
10 
11 f = open("lyrics","a",encoding="utf-8")         #以追加的方式写入,但不能够读取
12 f.write("追加写入
")
13 
14 f = open("lyrics","r+",encoding="utf-8")    #以读写的方式打开,即可读,也可写(追加),但写是从文件的最后开始写
15 print(f.readline())
16 print(f.readline())
17 f.write("===================")
18 f.close()
19 
20 f = open("lyrics","w+",encoding="utf-8")    #以写读的方式打开文件,即先创建一个文件,然后可读写,读可以实现位置移动,写是否根据光标需要看版本
21 f.write("+++---------------------+++
")
22 f.write("+++---------------------+++
")
23 f.write("+++---------------------+++
")
24 print(f.tell())
25 f.seek(30)
26 print(f.tell())
27 f.write("************")
28 
29 f = open("lyrics","a+",encoding="utf-8")    #追加读写,原本a是只可追加,不可读,现是可读写的,读默认是在末尾,如果需要从头读,则需要seek(0a)
30 for line in f:
31     print(line)
32 
33 f = open("lyrics","rb")         #以二进制模式读
34 print(f.readline())
35 f = open("lyrics","wb")         #以二进制模式写入
36 f.write("hello
".encode())     #默认是写入字符串,如果是二进制,则需要将字符串转换为二进制格式
37 
38 f = open("lyrics","r",encoding="utf-8")
39 print(f.readline())                           #读取文件中的一行
40 print(f.readlines())                            #读取整个文件,并将每行作为列表的一个元素存储,只适合读取小文件,大文件会撑爆内存
41 
42 f = open("lyrics","r",encoding="utf-8")
43 for index,line in enumerate(f.readlines()):                  #将文件读取成一个列表,每行是列表的元素,通过赋值line循环
44     if index == 9:
45         print("==============================")
46     print(line.strip())
47 
48 
49 f = open("lyrics","r",encoding="utf-8")
50 for line in f:                              #将文件中的每一行赋值给line,line为字符串类型
51     print(line.strip())
52 
53 print(f.read(12))               #读取12个字符
54 print(f.readline())
55 print(f.tell())             #告知现有光标位置
56 f.seek(0)               #表示回到文件某个位置
57 
58 print(f.encoding)       #表示打开文件的编码方式
59 print(f.name)           #打印文件名
60 print(f.seekable())     #判读文件是否可移动,如tty是不可以移动的
61 print(f.readable())     #判断文件是否可读
62 print(f.writable())     #判断文件是否可写
63 print(f.flush())        #强制刷新,默认是内存将数据存在缓存中,然后缓存聚集成一块后再统一刷到硬盘
64 f.closed                #判读是否关闭
65 
66 f = open("lyrics","a",encoding="utf-8")
67 f.truncate(20)      #表示从文件头截断20个字符,seek无效,都是从头开始截断
68 
69 #打印进度条
70 import sys,time
71 for i in range(100):                    #打印进度条
72     sys.stdout.write("!")               #系统标准输出,不会换行
73     sys.stdout.flush()                  #每打印一个,立即刷新,即从内存中立即刷新
74     time.sleep(0.1)                     #每个延迟0.1秒
原文地址:https://www.cnblogs.com/clv5/p/7056812.html