找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3534|回复: 2

【5】《我们一起入门python》-文件管理-1

7

主题

41

帖子

41

积分

贫民

www.gbwy99.com 卫浴代理

积分
41

活跃会员热心会员突出贡献荣誉管理

1号夜猫子 发表于 2016-8-25 12:53:44 | 显示全部楼层 |阅读模式
很抱歉!我今天才更新,因为最近百度姨妈,公司网站持续猛掉第五页了,让我这个seoer疲惫不堪。所以,迟了六天。非常抱歉!!!
今天主要讲的是文件管理
可参考OS案例:http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html
文件管理常用到os、shutil等模块
os模块是系统模块,可以执行dos。故可以调用dos对于文件夹进行操作。
shutil模块是
首先来讲一下文件的读写。
open
#注:使用了open以后一定要close关闭。打开要关闭。这是必须的。
读文件
>>> hello = open('x.txt','r')   
  • x.txt文件名
  • r open的模式
    • 关于Open的一些模式
      • w     以写方式打开,文件若存在,首先要清空,然后(重新)创建,
      • a     以追加模式打开 (从 EOF 开始, 必要时创建新文件)
      • r+     以读写模式打开
      • w+     以读写模式打开 (参见 w )
      • a+     以读写模式打开 (参见 a )
      • rb     以二进制读模式打开
      • wb     以二进制写模式打开 (参见 w )
      • ab     以二进制追加模式打开 (参见 a )
      • rb+    以二进制读写模式打开 (参见 r+ )
      • wb+    以二进制读写模式打开 (参见 w+ )
      • ab+    以二进制读写模式打开 (参见 a+ )
  • encdeing=gbk或者encoding=utf-8
>>> file = open('e:\\x.txt')      #打开E盘下的x.txt。
>>> print file                         #可以发现这样是打开不了的,3.x的可以直接打印出来。2.7的不行。
<open file 'e:\\x.txt', mode 'r' at 0x022F3700>
>>> for i in file:                      #我们可以使用for将其输出。
...     print i
...
By WHILE,hello world.
或者
>>> print(file.read())
By WHILE,hello world.
>>> file.read()                          #好比一本书,你打开书看到了一百页,那么下次使用ca.read()将回是空的,他以一百页会始端。
'By WHILE,hello world.'
>>> file.tell()                                #计算上一次的始端是多少  
21L                                                #L表示long
>>> file.close()                                #关闭
如果说如此文件读写的时候都会出错,一旦出错的话会,close就得不到执行,无论如何都要让其关闭,此时我们可以采用try...finally来实现。
>>> try:
...     x = open('e:\\x.txt','r')
...     print(f.read())
... finally:
...     f.close()
...

>>>
倘若每次都那么写,那就太麻烦了,python又引入了。with帮助我们调用close()
>>> with open('e:\\x.txt','r') as f:       #后面的as f是说将其重命名为f
...     print(f.read())
...
By WHILE,hello world.
>>>#这个和前面的try...finally代码是一致的。且不需要调用close
写文件
>>> file = open('e:\\hello.txt','w')
>>> file.write("hello world")
>>> file.close()                               #记得关闭
>>> file = open('e:\\hello.txt','r')    #倘若要再进行查看,那么久又要执行这个哟。
>>> file.read()
'hello world'
>>>#也可以使用with执行哟。
>>> with open('e:\\hellp.txt','w') as f:
...     f.write('i am kangkang.')
...
>>>
数据持久储存技术
pickle #泡菜,数据持久储存技术,可以将数据写到另外一个文件,然后加载。利于代码以后的优化。[就好比把文件先放在某个地方,需要调用的时候就再用。]
>>>import picle
>>>x = [123,'wa','hello']             #该数列是要保存的数列
读取
>>>pickle_file = open('1.pkl'.'wb')     #存为二进制文件,参数1是保存的文件,参数2是写入(wb)还是读取(rb)。pkl是后缀,可以随意定义。wb写入二进制文件,rb读取二进制文件
>>>pickle.dump(x,pickle_file)     #把参数1放到参数2当中。
>>>pickle_file.close()
加载
>>>pickfile_file = open('1.pkl','rb')
>>>x2 = pirckle.load(pickle_file)       #如此,一个list就这样被加载了,当然也可以是元组,是数列,甚至是字典。
>>>


回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-8-25 14:05:59 | 显示全部楼层
使用了open以后一定要close关闭。打开要关闭。这是必须的。


说的非常对,平时最容易忽视的点之一
回复 支持 反对

使用道具 举报

7

主题

41

帖子

41

积分

贫民

www.gbwy99.com 卫浴代理

积分
41

活跃会员热心会员突出贡献荣誉管理

1号夜猫子  楼主| 发表于 2016-8-26 20:36:15 | 显示全部楼层
blueelwang 发表于 2016-8-25 14:05
说的非常对,平时最容易忽视的点之一

嘻嘻。因为我就是忽略了好多次了。哈哈哈哈。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表