python学习day6(文件操作一:简单的读写)

#文件(记住每次操作都要关闭文件.close())
#简单的读取操作
data=open("YESTERDAY").read()    #打开文件读出整个文件的内容
print(data)
如果报错GBK,则修改为data=open("YESTERDAY",coding="utf-8").read()

#文件操作
# -*-coding:utf-8 -*-
'''data=open("YESTERDAY").read()    #打开文件(若文件不存在,自动创建一个新的文件)
print(data)
'''
#读文件(此时相当于把整个文件已经读到内存中了)
f = open("YESTERDAY",'r')  #文件句柄(简单记为文件对象)
data=f.read()
print(data)
'''data2=f.read()
print(data2)     #此时data2变量没有输出,理解为文件指针停留在第一个变量读取完文件后停留在末尾,
                 #data2读取的时候并没有回到文件的最开始位置,所以读不到文件内容
'''

#写'w',创建一个文件,覆盖原来存在的文件
f = open("YESTERDAY2",'w')
f.write("这是我啊\n")
f.write("sss\n")
f.close()

#a=append写的时候是追加到文件末尾的方式
f = open("YESTERDAY2",'a')
f.write("四十四")
f.close()



#指定行数输出文件内容
#readline() 输出一行文件内容
f = open("YESTERDAY",'r')
print(f.readline())     #每次读一行
for i in range(5):     #用for循环读取前5行
    print(f.readline())
#readlines() 将文件内容转换为列表形式
f = open("YESTERDAY",'r')    
for index,line in enumerate(f.readlines()):     #用enumerate给予下标,并第十行不打印文件内容
    if index==9:
        print("-------------")
        continue
    print(line.strip())                #strip是清除默认换行
    
    
    
#内存中每次只存在文件中的一行数据(较为高效的方法)(较为常用)
count=0
f=open("YESTERDAY",'r')
for line in f:          #f相当于迭代器
    if count==9:
        print("-------")
        count+=1
        continue
    print(line.strip())
    count+=1





#tell()获取当前文件指针位置(以字符计数的方式返回字符数)
#f.seek()将文件指针移到某处,括号中可以填写字符数,表示将指针移到指定字符数处
f=open("YESTERDAY",'r')
print(f.tell())    #此时输出到屏幕是0
print(f.readline())
print(f.tell())    #此时值不为0
f.seek(0)          #将文件指针移到文件首处
print(f.readline())
'''此时文件又可以进行第二次读,若没有seek()函数,
第二次读出的是空内容,因为文件指针在进行第一次读完后位于文件末尾处了。
'''



#f.encoding   查看文件编码格式




#f.flush()    实时刷新文件数据到硬盘上

#f.truncate(10) 无论是否有seek()或者任意的文件指针的位置,规定从文件开头截断到指定字符数,

 

posted @ 2019-06-09 19:20  LBC不认输  阅读(196)  评论(0编辑  收藏  举报