python文件的操作(day07)

今天学习了PYTHON中的文件操作,不仅学会了操作命令,更重要的是明白了python中,对文件的处理方式。、

1、读完文件后,文件指针会停留在文件的末尾,如果继续再次读文件时,将读取不到内容。

2、写文件时,会从文件的末尾写入,不允许在中间插入,或对中间的内容进行修改。 

3、在写入文件时,会将写入内容保存在缓存区中, 并不会立即写入硬盘,如果想立即写入硬盘的文件中,可以用flush方法。

4、程序关闭时,会自动关闭打开的文件,不过要养成好的习惯,在程序结束前,关闭文件。

import sys,time
for line in range(50):    #利用 sys模块中的标准输入输出,来模拟进度条,验证FLUSH的使用。
    sys.stdout.write("*")
    time.sleep(0.1) #等待
    sys.stdout.flush()



'''
file1=open("learn.txt",'r',encoding='utf-8')# 读的模式
file1=open("learn.txt","r+",encoding='utf-8')# 读写模式,这是一种比较常用的模式。
file1=open("learn.txt","w",encoding='utf-8')# 写的模式,如果文件存在,则会先清空文件。否则新建文件。
file1=open("learn.txt","w+",encoding='utf-8')#写读模式 ,比较鸡肋。
file1=open("learn.txt","a",encoding='utf-8')#追加模式,
file1=open("learn.txt","a+",encoding='utf-8')#追加读写模式。
file1=open("learn.txt","rb")#读二进制模式。还有相应的"wb',"ab"写二进制 追加二进制。
print(file1.readable())#是否可读
print(file1.writable())#是否可写
print(file1.seekable())#是否可转到其它位置。
print(file1.closed)#是否关闭。
file1.flush() #刷新内存,写入硬盘。用于实时操作,如银行存取。不用等缓存满了后再写,而是实时写入硬 盘。 
print (file1.tell()) #这个TELL,能显示当前字符的位置。
file1.seek(100)#跳转到指定字符位置。
print (file1.encoding)#显示文件的编码标准,如显示 :UTF-8
print (file1.fileno()) #打开文件,操作系统IO接口中的编号,不需要关注。
#file1.write("\n这是文件的第二行")#写入。
'''
'''
这两种循环方式应用于小文件,不适合于大文件,在实际应用中不常用,知道即可。
for i in range(5):
    print (file1.readline().strip())    读取一行
for index,line in enumerate(file1.readlines()):  将整个文件读到一个列表中。 
    print (index+1,':',line.strip())
以下是高效的方法。

count=0
for line in file1:
    if count==3:
        print (str.center('我是分隔线',50,'-'))
        count+=1
        continue
    print (line.strip())
    count += 1

'''
file1=open("learn.text",'w+',encoding='utf-8')
file1.truncate(10)#从指定位置截断。保留前边的,去提后边的。 
file1.close()

 修改文件内容的两种方法,提倡用第一种方法。

file1=open("learn.txt",'r',encoding='utf-8')
file2=open("learn.bak","w",encoding="utf-8")
for linetxt in file1:
    if "第三行" in linetxt:
        linetxt=linetxt.replace("第三行","分隔线")#通过将旧文件中的内容写入新文件的方法,进行修改。
    file2.write(linetxt)
file1.close()
file2.close()
 1 file1=open("learn.txt",'r',encoding="utf-8")
 2 file_data=file1.readlines()
 3 file1.close()
 4 temp_txt_data=''
 5 for line in file_data:
 6     if "第三行" in line:
 7         line=line.replace("第三行","分隔线")#整个读出后,再进行写入,不提倡这种方法。 
 8     temp_txt_data+=line
 9     print (line)
10 file2=open("learn.txt",'w',encoding="utf-8")
11 file2.write(temp_txt_data)
12 file2.close()

 

 

posted @ 2018-02-02 21:10  LZ鱼乐  阅读(180)  评论(0)    收藏  举报