1 文件读写简介
文件读写是应用程序中的常用操作。下面介绍Python中进行文件读写。Python的文件读写是非常简单的。
1.1 open函数
open函数一般有了两个必须参数,一个是文件名参数,另一个是模式参数,所谓模式参数是指读写等模式。还有一个参数用来控制文件的缓存,默认值为0,表示不缓冲,设置为1表示有缓冲。
open函数的模式值
r 读模式打开 w 读写模式打开 a 写入模式打开 b 二进制模式打开(可以和其他模式并用) + 读写模式打开,可以和其他模式并用 U 支持换行符例如 ,
默认是以r打开,需要注意的是,如果是特殊文件如视频或者图片文件,必须以b模式
o = open(r"F:Personal StudyCodeLibraryPythonchapter4abc.txt", 'r') o.write("Hello World") o.close()
注意:如果文件本身不存在的,open函数会自动判断,进行创建。
1.2 文件读取
将文本文件的内容读入,可以操作字符串变量的函数有3个,但他没对文件的读取方式各不相同,其中read()函数可以一次性读取,readline函数按行读取,readlines函数则以多行方式读取。
1.read函数
read函数使用规则如下:
content = read([num])
read函数只有一个参数num,这个参数是可选的用于控制函数读取数据的字符数。
o = open(r'/home/jack/demo/4.5/Demo05.py') content = o.read() print content print o.tell() content = o.read(16) print content o.close() 输出结果: o = open(r'/home/jack/demo/4.5/Demo05.py') content = o.read() print content print o.tell() content = o.read(16) print content o.close() 183
程序分析:tell方法用于查询当前文件的字符的长度,返回值是一个整数
2.readline函数
readline函数同样用来读取数据,但是每次只读取一样。
函数语法如下:
content = readline([num])
readline函数有一个参数,该参数作用和read函数参数一样,用于返回结果集中的字符内容。
o = open(r'/home/jack/demo/4.5/Demo05.py') print o.tell() content = o.readline(2) print content content = o.readline() print content o.close() 输出结果: 0 o = open(r'/home/jack/demo/4.5/Demo05.py')
3.readlines函数
该函数使用循环读取内容,能够显示文件的所有行
使用规则:
listcoentent = readlines()
例子:
o = open(r'/home/jack/demo/4.5/Demo05.py') contents = o.readlines() for content in contents: print content o.close() 输出结果: o = open(r'/home/jack/demo/4.5/Demo05.py') contents = o.readlines() for content in contents: print content o.close()
1.3 文件的写入
将内容通过片python写入已创建的文件中,这个过程叫文件写入。下面介绍write写入字符串以及使用函数wirtelines写入数据到文件。
1.write函数
规则:write(content)
该函数只有一个参数,并且是必须的。
o = open(r'/home/jack/demo/4.5/Demo06.py','w+') o.write("o = open(r'/home/jack/demo/4.5/Demo05.py') contents = o.readlines() for content in contents: print content o.close()") o.close()
分析:该程序将一个程序写入到另一个文件中Demo06.py中,修改Demo06.py的执行权限后,可以直接执行。
2.writelines函数
writelines只有一个参数,参数是集合类型数据
规则:writelines(listcontent)
o = open(r'/home/jack/demo/4.5/Demo06.py','w+') listcontent = ['Hello', 'World'] o.writelines(listcontent) o.close()
运行后会将列表中的数据写入到Demo06.py文件中
注意:如果是字典文件,只会将键写入,值不会写入。
示例:创建一个记事本:
print '==================Welcome to use QiQi Note=================' con = True while con: k = int(raw_input('Please input your operation: 1.I want to write diary 2.I want to read my diaries 3.quit ')) if(k == 1): o = open(r"/home/jack/demo/4.5/mylog.txt","a+"); content = raw_input("Please write: ") o.write(content); o.close(); print "===================="; elif(k == 2): print "===================="; o = open(r"/home/jack/demo/4.5/mylog.txt","a+"); listcontent = o.readlines(); for content in listcontent: print content; o.close(); print "===================="; else: print "Welcome to use next time"; con = False;
选择输入1,输入一些内容后,再选择2读取
====================
I miss you,QiQi
====================
os模块和os.path模块
os模块和os.path模块下包含了与普通操作系统的交互功能。如果你希望程序能够与平台无关,这个模块很重要。这个模块提供了统一的操作系统接口函数
os模块比较重要的函数
下面介绍常用函数
remove函数
语法如下:
import os;
os.remove(file)
一个例子:
#!/usr/bin/python import os; if (os.path.exists(r"/home/jack/demo/4.5/abc.txt")): os.remove(r"/home/jack/demo/4.5/abc.txt"); print "Remove successfully";
copyfile和move函数
这两个函数属于shutil模块的,这个模块下包含下面几个常用的函数:
copyfile函数语法是:copyfile(src,dst)
该函数有两个参数,其中src表示需要复制文件的地址,参数dst表示文件复制的目的地址。另外使用move函数实现文件的移动操作。
import shutil; shutil.copyfile(r"/home/jack/demo/4.5/Demo07.py", r"/home/jack/demo/4.5/bk_Demo07.py"); shutil.move(r"/home/jack/demo/4.5/Demo06.py", r"/home/jack/demo/Demo06.py");
mkdir函数
该函数和linux的mkdir命令作用是一样的,用于创建一个自定义目录。语法如下:
import os; os.mkdir(dir)
下面例子用mkdir创建了一个目录,并用open函数生成了一个文件
>>> import os >>> os.mkdir(r"/home/jack/demo/4.5/hell") >>>open(r"/home/jack/demo/4.5/hell/abc.txt","a+")
makedirs函数
该函数同样是用来创建一个目录,它和mkdir函数作用相同,唯一不同的是,makedirs函数可以创建多级目录,而mkdir不能
os.makedirs(dir) os.makedirs(r"/home/a/b")
rmdir函数
这个函数用来删除空目录的,如果目录中存在子文件夹或者文件则会抛出异常。
os.rmdir(dir)
rmtree函数
这个函数用于删除非空目录,无论里面是不是有子文件夹或者文件,都可以删除
shutil.rmtree(dir)