Python之文件操作

 

#不管是什么编程语言,文件操作必然都是三个大体步骤

1、打开文件

2、操作文件

3、关闭文件

打开文件方式:open(文件名,模式,编码)---->模式是打开的模式,以什么模式打开,就只能什么方式操作,比如以读的模式打开,那就只能读,同理写的模式,以追加的模式打开,那就可以在文件上动手脚等等模式,模式默认是只读('r'),编码默认('utf-8')

 实例:

f = open('halog')
data = f.read()
f.close()
print(data)

当然文件名只能在当前目录下才能找到,所以如果文件不在当前目录下,那就可以写入绝对路径

f = open('文件路径')下面来普及一下文件的模式有:

'r' 只读模式(默认)
'w' 只写模式(不可读,不存在则创建
并把新内容加进去,存在则清空内容并把新内容加进去)
'x' 只写模式(不可读,不存在则创建,存在则报错)
'a' 追加模式(不可读,可写,不存在则创建,存在则只追加内容)

那么最后说一下,以上都是以字符串str的方式读写出来的,下面来看一下以二进制,字节的方式输出,首先说明一下,上面默认编码是utf-8,对于所有的数据存储于最底层硬盘里,都是以
二进制方式
存储的,下面通过以字节的形式输出,编码就不用写了,因为最底层是以二进制形式存储,直接拿出来就可以
1、字节的方式打开
#只读 'rb'
# f = open('文件名','rb')
# data = f.read()
# f.close()
# print(data)

2、只写 'wb' ,那么写入的时候要注意了,因为现在比如上面以二进制读取,不经过utf-8编码,那么我们写,就要以二进制写进去,写入字符串经过bytes字节转换,编码utf-8,否则报错
# f = open('文件名','wb')
# f.write(bytes('输入的字符串内容',encoding='utf-8'))
# f.close()
#
终上所述,只读rb,只写wb,那么xb、ab都是一样道理

所以我们就有两种打开方式
#普通打开 将内部0101010二进制转换字符串,然后输出
#二进制打开方式 直接拿出,不需要编码,就是二进制,然后输出

下面再来认识一组 '+' ,'+'表示可以同时读、写某个文件
# 'r+' 读写(可读、可写)
# 'w+' 写渎(可读、可写)这里跟r+不一样,这里是先清空,再写,然后在读,所以只能读后来写的内容
f = open('halog','w+',encoding='utf-8')
data = f.read()
f.close()
print(data)
View Code
# 'x+' 读写(可读、可写),同理,如果文件存在则报错
# 'a+' 读写(可读、可写) 也会追加
f = open('halog','a+',encoding='utf-8')
data = f.read()
f.close()
print(data)
View Code

剩下最后一组了
# 'r+b' 原理都一样,只要有b,bytes(的缩小),就是跟字节有关,可读可写,以字节的形式操作,以下都一样
# 'w+b' 略
# 'x+b' 略
# 'a+b' 略


就不代码举例了(f.tell()获取指针的位置,f.seek(num)调整指针的位置,这两个可以查看内容读取位置和更改)

下面在介绍几个功能:
1、f.read()
2、f.readline()--->一行一行的读取
3、f.seek()
4、f.tell()
5、f.reuncate()--->截取内容,截取的位置看光标的位置在哪
6、f.write()

关闭文件的时候可以不用谢f.close(),还有另一种方法
with open('halog','r') as f:
  f.read()

Python2.7以后新增功能,可以同时打开两个文件
with open('halog1','r') as obj1, open('halog2','r') as obj2:
  pass

用处之一:可以写入另一个新文件里,一行一行的写入
with open('halog1','r') as obj1, open('halog2','r') as obj2:
  for line in obj1:
    obj2.write(line)




posted @ 2017-09-21 17:59  Mr.seeker  阅读(146)  评论(0编辑  收藏  举报