首页 > 代码库 > Python 自动化开发_文件处理
Python 自动化开发_文件处理
一.python 文件处理学习
1.1 为什么需要学习对文件处理:
简单的来说.对文件操作的处理是相当重要的.如果不会如何对文件进行处理.那么就等同于不会使用python.说得一点也不严重.现在您清楚了吧!So 对文件处理的操作是相当重要De
1.2 文件操作流程:
打开文件.得到文件句柄后赋值给一个变量
通过文件句柄并赋值给一个变量
关闭文件
1 You‘re insecure 2 Don‘t know what for 3 You‘re turning heads 4 When you walk through the do-o-or 5 Don‘t need make up 6 To cover up 7 Being the way that you are is en-o-ough 8 Everyone else in the room can see it 9 Everyone else but you 10 Baby you light up my world like nobody else 11 The way that you flip your hair gets me overwhelmed 12 But when you smile at the ground it ain‘t hard to tell 13 You don‘t know oh oh 14 You don‘t know you‘re beautiful 15 If only you saw what I can see 16 You‘ll understand why I want you so desperately 17 Right now I‘m looking at you and I can‘t believe 18 You don‘t know oh oh 19 You don‘t know you‘re beautiful 20 Oh oh 21 That‘s what makes you beautiful 22 So c-come on 23 You got it wrong 24 To prove I‘m right I put it in a so-o-ong 25 I don‘t know why 26 You‘re being shy 27 And turn away when I look into your ey-e-es 28 Everyone else in the room can see it 29 Everyone else but you 30 Baby you light up my world like nobody else 31 The way that you flip your hair gets me overwhelmed 32 But when you smile at the ground it ain‘t hard to tell 33 You don‘t know oh oh 34 You don‘t know you‘re beautiful 35 If only you saw what I can see 36 You‘ll understand why I want you so desperately 37 Right now I‘m looking at you and I can‘t believe 38 You don‘t know oh oh 39 You don‘t know you‘re beautiful 40 Oh oh 41 That‘s what makes you beautiful 42 Na na na na na na naaaa na na 43 Na na na na na na 44 Na na na na na na naaaa na na 45 Na na na na na na 46 Baby you light up my world like nobody else 47 The way that you flip your hair gets me overwhelmed 48 But when you smile at the ground it ain‘t hard to tell 49 You don‘t know oh oh 50 You don‘t know you‘re beautiful 51 Baby you light up my world like nobody else 52 The way that you flip your hair gets me overwhelmed 53 But when you smile at the ground it ain‘t hard to tell 54 You don‘t know oh oh 55 You don‘t know you‘re beautiful 56 If only you saw what I can see 57 You‘ll understand why I want you so desperately 58 Right now I‘m looking at you and I can‘t believe 59 You don‘t know oh oh 60 You don‘t know you‘re beautiful 61 Oh oh oh 62 You don‘t know you‘re beautiful 63 Oh oh oh 64 That‘s what makes you beautiful
基本操作语法如下:
1 f = open("whatmakesyoubeautiful","r",encoding="utf-8") #打开文件 2 date = f.read() #赋值给date 3 print(date) #打印文件 4 f.close() #关闭文件
打开文件的模式有:
r 只读模式[默认].
w 写模式[不可读.不存在则创建.存在则清空内容.写入现有内容].
a 追加模式[可读.不存在则创建.存在则只追加新的内容].
"+"表示可以同时读某个文件
r+ 可读写文件[可读,可写,可追加]. w+ 写读. a+ 等同于a.
"U" 表示在读取时.可以将 \r \n \r\n自动转换成 \n [与 r 或 r+ 模式同使用]. rU & r+U
"b" 表示处理二进制文件[如:FTP发送上传ISO文件,linux可忽略,windows处理二进制文件时需标注] rb wb ab
文件正式操作如下:
1 #读 read 2 # 简单的打开文件 默认是 r 模式 内存对象(文件句柄) 3 f = open("File",encoding="utf-8") 4 date = f.read() 5 print(date) 6 f.close() #关闭文件 7 8 9 #写 write 10 # 写模式是 w . 默认是创建,有也会创建 把原有的覆盖冲掉 写的模式是不能读的 11 f00 = open("File_write","w",encoding="utf-8") 12 f00.write("我爱北京天安门\n") #写内容 13 f00.write("welcome to BJ") 14 f00.close() #关闭文件 15 16 #添加 a append 追加 17 # # 添加 a 直接追加,原有的不会覆盖 不能进行读取文件中的信息 18 f001 = open("File_write_a","a",encoding="utf-8") 19 f001.write("\n我爱北京天安门\n") 20 f001.write("welcome to BJ") 21 f001.close() 22 23 #读取第一行 24 f002 = open("File","r",encoding="utf-8") 25 date = f002.readline() #读取第一行 26 print(date) 27 28 #读取前五行 29 for i in range(5): #读取前5行加.srtip是去掉空格 30 print(f002.readline().strip()) 31 32 33 count = 0 34 for line in f002: #高效的循环方法 35 if count == 4 : #对第五行特殊处理. 相当于修改了第行的内容 36 print("".center(20,"*")) 37 count += 1 38 continue 39 print(line.strip()) 40 count += 1
文件其他方法操作如下:
1 ##########方法########## 2 #tell 查看光标位置 3 f002 = open("File","r",encoding="utf-8") #文件句柄 4 print( f002.tell()) # tell 查看指针在那 刚开始是0 5 print( f002.readline()) # 可以指定字符光标 也可以不加 6 print( f002.tell()) # tell 按字符计数光标到多少个字符 7 8 #seek 将光标回到字符串某一位置 9 print(f002.seek(0)) #光标回到位置(此处只能指定那个字符位置不能指定回到哪行.因为不知道字符数字) 10 print( f002.readline()) # 可以指定字符光标 也可以不加 11 f002.seek(10) #将光标移动到第10个字符串 12 print(f002.readline(),f002.tell()) #打印出光标10以后的数字.并统计 13 14 15 #encoding 打印出文件的编码格式 16 print(f002.encoding) 17 18 #name 打印文件名字 19 print(f002.name) 20 21 #isatty 查看是不是终端设备 是返回True 不是返回False 22 print(f002.isatty()) 23 24 #seekanle 判断是否二进制文件 是返回True 说明能移动 不是返回False 说明不能移动 25 print(f002.seekable()) 26 27 #readable 判断文件是否可读. 可读返回True 不可读返回False 28 print(f002.readable()) 29 30 #writable 判断文件是否写 可写返回True 不可写返回False 31 print(f002.writable()) 32 33 #flush 必须是写的模式 等待缓存满了写入硬盘flush 直接写入 时时 强制 34 print(f002.flush()) 35 # #如以下 36 import sys,time 37 for i in range(20): 38 sys.stdout.write("#") 39 sys.stdout.flush() 40 time.sleep(0.1) #演示结果 如果不加flush的话一起出现.加上后一个一个出现 41 42 43 #buffer 内存 44 print(f002.buffer) 45 46 f002 = open("File","a",encoding="utf-8") #文件句柄 47 #truncate 截断,以下的意思是从10往后截断 48 f002.truncate(10)
文件操作:
1 ## r+ 是读写 2 f = open("File","r+",encoding="utf-8") 3 print(f.readline().strip()) 4 f.write("---------叼--------") #在最后一行直接写,不换行 5 # w+ 是写读 #先创建一个文件 在往里面写 6 f = open("File","w+",encoding="utf-8") 7 f.write("---------叼--------1\n") 8 9 print(f002.tell()) 10 f002.seek(10) 11 print(f002.readline()) 12 f002.write("should be at the begining of the second line") 13 # a+ 追加读
文件二进制操作:
1 ## rb 二进制文件 二进制读 2 #使用场景 传文件. 3.0中网络传输只能用二进制 3 f = open("File","rb") 4 print(f.readable()) 5 6 7 ## wb 二进制文件 二进制写 8 #使用场景 传文件. 3.0中网络传输只能用二进制 9 f = open("File","wb") 10 f.write("Hello binary\n".encode()) #二进制写的时候只能加encode 11 f.close() 12 13 # ab 追加二进制文件 追加二进制写 14 # #使用场景 传文件. 3.0中网络传输只能用二进制 15 f = open("File","ab") 16 f.write("Hello binary\n".encode()) #二进制写的时候只能加encode 17 f.close()
文件修改操作:
1 ## 第一种修改 把文件加载到内存 和VI一样进行修改 不采用 2 ## 第二种修改 打开一个文件修改完后写到一个新的文件中了 采用 3 4 #修改文件 5 #思路 首先找到需要修改的地方【一行一行的读.修改完后放到新的文件中...不修改的直接写到新的文件中,修改后的写到新的文件中】 6 f1 = open("Old_test","r",encoding="utf-8") #首先打开文件 7 f2 = open("New_test","w",encoding="utf-8") 8 9 for line in f1: 10 if "Yesterday" in line: 11 line = line.replace("Yesterday","昨日当我年少轻狂插插插插插插插插") 12 13 f2.write(line) 14 f1.close() 15 f2.close()
Python 自动化开发_文件处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。