首页 > 代码库 > Python 自动化开发_文件处理

Python 自动化开发_文件处理

一.python 文件处理学习

  1.1 为什么需要学习对文件处理:

    简单的来说.对文件操作的处理是相当重要的.如果不会如何对文件进行处理.那么就等同于不会使用python.说得一点也不严重.现在您清楚了吧!So 对文件处理的操作是相当重要De

  1.2 文件操作流程:

    打开文件.得到文件句柄后赋值给一个变量

    通过文件句柄并赋值给一个变量

    关闭文件 

技术分享
 1 Youre insecure
 2 Dont know what for
 3 Youre turning heads
 4 When you walk through the do-o-or
 5 Dont 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 aint hard to tell
13 You dont know oh oh
14 You dont know youre beautiful
15 If only you saw what I can see
16 Youll understand why I want you so desperately
17 Right now Im looking at you and I cant believe
18 You dont know oh oh
19 You dont know youre beautiful
20 Oh oh
21 Thats what makes you beautiful
22 So c-come on
23 You got it wrong
24 To prove Im right I put it in a so-o-ong
25 I dont know why
26 Youre 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 aint hard to tell
33 You dont know oh oh
34 You dont know youre beautiful
35 If only you saw what I can see
36 Youll understand why I want you so desperately
37 Right now Im looking at you and I cant believe
38 You dont know oh oh
39 You dont know youre beautiful
40 Oh oh
41 Thats 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 aint hard to tell
49 You dont know oh oh
50 You dont know youre 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 aint hard to tell
54 You dont know oh oh
55 You dont know youre beautiful
56 If only you saw what I can see
57 Youll understand why I want you so desperately
58 Right now Im looking at you and I cant believe
59 You dont know oh oh
60 You dont know youre beautiful
61 Oh oh oh
62 You dont know youre beautiful
63 Oh oh oh
64 Thats what makes you beautiful
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 自动化开发_文件处理