频道栏目
首页 > 资讯 > Python > 正文

Python基础学习<七>

17-09-12        来源:[db:作者]  
收藏   我要投稿

文件操作

标准输入和标准输出

输入(raw_input/input)—> 程序处理 —> 输出(print)
操作系统不允许普通的程序直接操作磁盘,所以,读写文件实质是请求操作系统打开一个文件对象(文件描述符),然后,操作系统提供的接口,通过文件对象操作文件。

管理文件的步骤

打开文件
f = open(“filename”) #创建文件对象f,type(f)=file,可迭代,若文件不存在,open()函数抛出IOError 处理文件
f.read() # 读取文件所有内容
f.write(“hello”) # 不能往文件中写入,因为默认文件以r的模式打开; 关闭并保存文件
f.close() #释放系统资源

文件的基本操作

文件的打开f = open (“path”,”mode”)

r 模式
以读的方式打开,定位到文件开头 , 默认的 mode。文件不存在直接报错,文件只能读取,不能写入。 r+模式
以读写的方式打开,定位文件开头 , 可以写入内容到文件 w 模式
以写的方式打开,打开文件的时候会清空文件的内容,并且不能读 w+模式
以读写的方式打开,定位到文件头,并且打开文件的时候也会清空文件的内容 a模式
以写的方式打开,定位到文件的末尾,是一个追加的操作 , 但并不允许读 a+模式
以读写的方式打开,定位到文件的末尾,追加的方式。

注:在使用以上 mode 打开文件的时候,如果增加了b 模式,表示以二进制方式打开

文件的读取f.read()

如果文件打开成功,接下来,调用 read() 方法可以一次读取文件的全部内容;

文件的关闭f.close()

文件使用完毕后必须关闭,因为文件对象会占用操作系统的资源

文件的其他操作

f.flush()函数,他将缓冲区中的内容写入到硬盘中 f.seek(offset[,whence]),函数,offset表示移动多少字节,大于零向右偏,小于零向左偏。whence为1的时候表示相对于当前位置移动的,当是2的时候从文件的末尾往后移动,但不一定所有的平台都支持;为0的时候表示从开头往后移动. fileno()函数,返回当前的文件描述符,一个数字 isatty()函数,当前打开的文件是否是一个终端设备,close属性,当前文件是否关闭返回True,False。

练习

#显示文件中所有的行,但忽略以#号开头的行。
f = open("world.md","a+")
for i in f :
    i = i.strip()
    if not i.startswith("#"):
        print i 
f.close()
#下面为更高级一点的代码,在这段程序执行完毕之后自动关闭文件
with open("world.md","a+") as f :
    for i in f :
        i = i.strip()
        if not i.startswith("#"):
            print i

模块

模块的实质

模块实质上就是一个以.py结尾的文件,可以被其他py文件调用;导入模块时,会去python的默认搜索路径中寻找;

导入模块的路径

python的默认搜索路径sys.path
添加自定义的搜索路径时,sys.path是一个列表,
sys.apth.append(“path”); sys.path.append(“/home/kiosk/1-Pythonv3/day08/code”) sys.path.insert(0,’/home/kiosk’)
导入一个模块的实质是将模块的文件重新运行一次;
import  sys
print sys.path
#这两行代码就可以打印出导入模块的路径

导入模块的方法

import module1,module2
from 模块名 import 函数名
from 模块名 import 函数名 as 函数别名
import 模块名 as 函数别名

模块的分类

内置模块(os,sys,time) 自定义模块 第三方模块 #开源

常用的内置模块

os,sys,time,datetime,json/pickle,shutil,random

导入一个包的实质是运行包里面的init.py文件; 导入包的方法:
import 包名
from 包名 import 模块名
import 包名 常用的几种方式
1)调用模块:from 包 import 模块
访问:模块.函数()
2)调用模块:import 模块
访问:包.模块.函数()
相关TAG标签
上一篇:cobbler实现批量部署Linux服务器(rhel6.5)
下一篇:OpenStack修改节点IP地址
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站