文件操作

对文件操作流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件 

打开文件的模式有:

  • 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 data = open("FileRead.txt",mode='r')                      #r-读
 2 print(data.read())
 3 data.close()
 4 
 5 data = open("FileRead1.txt", mode='w',encoding="UTF-8")     #w-写
 6 data.write("123\n")
 7 data.write("321\n")
 8 data.write("哈哈哈\n")
 9 data.close()
10 
11 data = open("FileRead1.txt",mode='a',encoding="UTF-8")      #a-追加
12 data.write("这是追加的部分\n")
13 data.close()
14 
15 data = open("FileRead1.txt",mode='r+',encoding='UTF-8')      #r+ 打开一个文件用于读写。文件指针将会放在文件的开头。
16 print(data.readline())
17 data.write("111")
18 print(data.readline())
19 data.close()
20 
21 
22 
23 data = open("FileRead1.txt",mode='w+',encoding='UTF-8')      #w+  打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
24 
25 data = open("FileRead1.txt",mode='a+',encoding='UTF-8')      #a+  打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

文件操作:




#打印每行 第五行打印成“---------------------------”
data = open("FileRead1.txt",mode='r',encoding='UTF-8')

#第一种方法 高效
count = 0
for line in data:
if count == 5 :
count += 1
print("-----------------------------------------")
continue
print(line.strip()) #strip去掉空格
count += 1

#第二种方法
for index,line in enumerate(data.readlines()):
-#enumerate 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
if index == 5 :
print("-----------------------------------------")
continue
print(line.strip())

'''

----------------------------------------------------------------------------------------------------------------------------------

#file.flush() 刷新文件内部缓冲,直接把内部缓冲区的数据立刻写入文件, 而不是被动的等待输出缓冲区写入。
#file.read([size]) 从文件读取指定的字节数,如果未给定或为负则读取所有。
#file.tell() 返回文件当前光标位置。
#file.seek(offset[, whence]) 设置文件当前光标位置

文件修改内容:

 文件中修改内容默认只能在文件最后添加,如果修改中间的内容,必须逐行读出来(转为字符串),然后将需要替换的内容更换(更换字符串),然后将内容写入到新文件中。

 

1 1 f1 = open("text1.txt",mode="r",encoding="UTF-8")
2 2 f2 = open("text2.txt",mode="w",encoding="UTF-8")
3 3 for line in f1 :
4 4     if "" in line :
5 5         line=line.replace("","大哥")
6 6     f2.write(line)
7 7 f1.close()
8 8 f2.close()

 

with语句

  

 1 #with  为了避免打开文件后忘记关闭,可以通过管理上下文,即:
 2 with open("text2.txt",mode="r",encoding="UTF-8") as f1 ,\
 3      open("text1.txt",mode="r",encoding="UTF-8") as f2 :
 4     for i in f1:
 5        print(i)
 6 
 7 #如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。
 8 #在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:
 9 with open("text2.txt",mode="r",encoding="UTF-8") as f1 ,\
10      open("text1.txt",mode="r",encoding="UTF-8") as f2 :

 

 posted on 2018-08-05 16:03  二十二a  阅读(97)  评论(0编辑  收藏  举报