Python笔记12~文件操作

 #coding:utf-8
 #Python文件处理
 #文件操作open
 #文件操作的模式
 #文件句柄对象
 #Python上下文管理器
 #文件异常处理

 #中间层(操作系统文件的接口方法)

#open-->操作系统文件处理的接口方法--->操作文件
#Python2和Python3

#Python2
#f=file('ben.py','w')
#file=open('tom.py','w')

#python,open保留下来了
#f=open('abc.py','w')


#f=open('work.py','w') #f文件对象,第一个参数文件名称,第二个参数是模式
#print(type(f))
#f.write('hello,ben')   #write-->写  read--->读取数据
#f.write('\n')
#f.write('今天天气有点冷')
#f.close() #解释文件句柄对象---->释放资源


#第一个参数(使用相对路径)
#模式()
#如果写入数据乱码--->编码问题
#如果当前这个文件名字已经存在,就打开,如果不存在就创建
#模式确定('w'--->会覆盖原有数据(全部清空,然后再写入数据,追加数据))
#


#第一步:创建文件句柄对象
#文件读取第一种方式:
# file=open('work.py','r') #如果文件不存在会出现异常
# result=file.read() #一次性读取所有数据,默认留(),有参数的的时候表示读取多少字节数
# print(result)
# file.close()  #读取玩数据之后,关闭文件句柄对象,释放资源

#文件读取第二种方式:readline
# file=open('work.py','r') #如果文件不存在会出现异常
# result=file.readline() #读取一行数据,有参数表示读取多少字节数
# print(result)
# file.close()  #读取玩数据之后,关闭文件句柄对象,释放资源


#文件读取第三种数据:readlines() 返回一个列表
# file=open('work.py','r') #如果文件不存在会出现异常
# result=file.readlines(1) #读取文件所有的数据
# print(result)
# file.close()  #读取玩数据之后,关闭文件句柄对象,释放资源


#文件操作模式
#r模式,读模式
#w模式,写模式
#a模式,追加模式
#r+,w+,a+

#追加模式,a模式---->append(追加),在末尾追加数据

#r+模式,如果文件不存在会报错,文件存在的时候,可读数据,也可以写数据
# file=open('work.py','r+')
# result=file.read()
# print(result)
# file.write('\n模式')
#file.close()

#w+模式,如果文件不存在,会报错,可以读数据,可以写数据,覆盖原有数据
#file=open('work.py','w+') #覆盖原有数据
#file.write('\n模式')
#file.seek(0)
#result=file.read()
#print(result)
#file.close()


#a+模式
#file=open('work.py','a+') #覆盖原有数据
#file.write('\n模式')
#file.seek(0)
#result=file.read()
#print(result)
#file.close()

#文件句柄对象
#f=open('work.py','r')
#for line in  f:  #read()  readlines() readline()
#    print(line)


#文件句柄对象是是迭代对象
#通过这种方式读取数据:优点很多行内存小


#上下管理器文件的操作
#with关键字---->上下管理,with内置open()--->文件对象,取别名
#with open('work.py','r') as  f:#f---->open返回对象
#    for line in  f:   #内存优化文件读取
#        print(line.strip())


# with open('work.py','a+') as  f:#f---->open返回对象
#     f.seek(0)   #不添加在a+模式下打印不出来
#     for line in  f:   #内存优化文件读取
#         print(line.strip())
#     f.write('\n加最后一行数据')


#写入多行数据
# with open('work.py','a+') as  f:#f---->open返回对象
#     result_list=['你是谁','\n','我是谁','\n','加最后一行数据']
#     f.writelines(result_list)
#     f.seek(0)   #不添加在a+模式下打印不出来,有没有数据,是由文件指针位置决定的,位置在末尾,读取不到数据
#     for line in  f:   #内存优化文件读取
#         print(line.strip())
#     f.write('\n加最后一行数据')



#errors='ignore',如果遇到错误编码,处理方式是忽略
# try:
#     f=open('ben.py','r',errors='ignore')
#     conn=f.read()
#     print(conn)
#     f.close()
# except Exception as  e:
#     print(e)
# finally:
#     print('最后一步处理')


#a+模式里面读取数据,不小心读取空数据()
#a+模式要注意指针的位置
with open('ben.py','a+') as  f:
    f.write('你好')
    print(f.tell())
    print(f.read())
    f.seek(0)
    print(f.read())
    f.writelines('aa')

 

posted @ 2018-03-06 17:03  零度咖啡  阅读(84)  评论(0)    收藏  举报