????在python,使用open函数,可以打开一个已经存在的文件,或者者创立一个新文件
????open(文件名,访问模式)
????示例如下:
????????f = open('test.txt','w')
r? ? 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w? ?打开一个文件只用于写入。假如该文件已存在则将其覆盖。假如该文件不存在,创立新文件。
a? ? 打开一个文件用于追加。假如该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。假如该文件不存在,创立新文件进行写入。
rb? ? 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。
wb? ? 以二进制格式打开一个文件只用于写入。假如该文件已存在则将其覆盖。假如该文件不存在,创立新文件。
ab? ? ?以二进制格式打开一个文件用于追加。假如该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。假如该文件不存在,创立新文件进行写入。
r+? ? ? 打开一个文件用于读写。文件指针将会放在文件的开头。
w+? ? ?打开一个文件用于读写。假如该文件已存在则将其覆盖。假如该文件不存在,创立新文件。
a+? ? ?打开一个文件用于读写。假如该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。假如该文件不存在,创立新文件用于读写。
rb+? ? 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+? ?以二进制格式打开一个文件用于读写。假如该文件已存在则将其覆盖。假如该文件不存在,创立新文件。
ab+? ? ?以二进制格式打开一个文件用于追加。假如该文件已存在,文件指针将会放在文件的结尾。假如该文件不存在,创立新文件用于读写。
????示例如下:
????# 新建一个文件,文件名为:
????????test.txtf = open('test.txt','w')
????????# 关闭这个文件
????????f.close()
????????使用write()可以完成向文件写入数据
? ??????f = open('test.txt','w')
????????f.write("你好,中国!!!")
????????f.close()
? ? ? ? 注意:假如文件不存在那么创立,假如存在那么就先清空,而后写入数据。
????????????使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),假如没有传入num,那么就表示读取文件中所有的数据。
? ??????注意:
????????假如open是打开一个文件,那么可以不用谢打开的模式,即只写?open('test.txt')
????????假如使用读了屡次,那么后面读取的数据是从上次读完后的位置开始的。
????????????就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。
? ? ? ? ? ? 读入一行数据。
????????????在读写文件的过程中,假如想知道当前的位置,可以使用tell()来获取。
????????????假如在读写文件的过程中,需要从另外一个位置进行操作的话,可以使用seek()
????????????seek(offset, from)有2个参数:
????????????????offset:偏移量
????????????????from:方向
????????????????????0:表示文件开头
????????????????????1:表示当前位置
? ? ? ? ? ? ? ? ? ? 2:表示文件末尾
????????有些时候,需要对文件进行重命名、删除等少量操作,python的os模块中都有这么功能。
????????????????os模块中的rename()可以完成对文件的重命名操作
????????????????rename(需要修改的文件名, 新的文件名)。
? ??????????????????import? os?
? ? ? ? ? ? ? ?????os.rename("毕业论文.txt","毕业论文-最终版.txt")
????????????????os模块中的remove()可以完成对文件的删除操作
????????????????remove(待删除的文件名)
? ??????????????????import? os?
? ? ? ? ? ? ? ? ? ? os.remove("毕业论文.txt")
????????实际开发中,有时需要用程序的方式对文件夹进行肯定的操作,比方创立、删除等
就像对文件操作需要os模块一样,假如要操作文件夹,同样需要os模块
? ??????????????import? os?
? ? ? ? ? ? ? ? os.mkdir("张三")
????????????????import? os? ??
????????????????os.getcwd()
????????????????import? os? ??
????????????????os.chdir("../")
????????????????import? os? ??
????????????????os.listdir("./")
????????????????import? os? ??
????????????????os.rmdir("张三")