一、打开文件
Python中使用内置函数open()打开文件,创建file对象。
语法格式如下:
file object = open(filename,[,access_mode][,buffering])
fp = open("E:\\test.txt")
filename:访问的文件名,必选参数项
access_mode:访问文件的模式,可选参数项,默认只读(r)
buffering:设置文件缓冲区,可选参数项,默认缓冲区大小4096字节。
open:
fp = open("E:\\test.txt","w")
fp.write("Hello World")
fp.close()
with open:
with open("E:\\test.txt","w") as fp:
fp.write("Hello world!")
两种方式区别见:泰泰博客 » 文件操作中open()与with open() as… 间的差异
访问文件的模式:
模式 | 描述 |
---|---|
r | 以只读方式打开文件,文件指针在文章开头(默认) |
w | 打开一个文件,用于写入。文件存在,则将其覆盖,若文件不存在,则系统新建文件 |
a | 打开一个文件,用于追加 。文件存在,则内容写在结尾,若文件不存在,则系统新建文件再写入 |
rb | 以二进制格式打开一个文件,用于只读 |
wb | 以二进制格式打开一个文件,只用于写入,文件存在,则将其覆盖,若文件不存在,系统则新建一个文件 |
ab | 以二进制格式打开一个文件,用于追加 ,文件存在,直接实行追加模式,若文件不存在,则创建新文件用于写入 |
r+ | 打开一个文件,用于读写 |
a+ | 打开一个文件用于读写。该文件若存在,新内容实现追加,若文件不存在,系统创建新文件用于读写 |
rb+ | 以二进制格式打开一个文件,用于读写。一般用于非文本文件 |
wb+ | 如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,实行追加模式,如果该文件不存在,创建新文件用于读写。 |
二、基本的文件方法
1、read()方法
读取文件的全部信息,返回值为从文件中读取的字符串
语法格式如下:
pythonstring = fileobject.read([size])
with open('E:\\test.txt',"r") as f: # 只读模式打开文件
content = f.read() #读取文件全部内容
print(content)# 输出时会将空白行也输出
print '------------'
print(contents.strip() )# 调用strip()函数用于把目标内容里面
#所有的空格,空行等都删除掉,只剩余文字内容
输出结果:
This is an example!
-----------------
This is an example!
-----------------
注意:
调用read()会一次性读取文件的全部内容,如果文件很大,内存可能就会挤爆,read()适合读取较小文件的时候;如果不能确定文件大小,反复调用read(size)比较保险;
若要读取非UTF-8编码的文本文件,还需要给open()函数传入encoding参数
2、readline()方法
该方法用于从文件中读取整行,返回字符串格式,包括"\n"字符。
语法格式如下:
pythonString = fileobject.readline([size]);
size:从文件中读取的字节数,若参数为整数,则返回指定大小的字符串数据
应用代码如下:
with open("E:\\test.txt","w") as f1:
f1.write("1、第一行测试数据\n2、第二行测试数据\n")
with open("E:\\test.txt","r") as f2:
print(f2.readline())
print(f2.readline(8))
输出结果:
1、第一行测试数据
2、第二行测试数
该方法每次读取一行,全部读取需要使用循环读取所以占用内存较小,适合大文件。
3、readlines()方法
该方法用于读取文件中所有行,直到结束符EOF,并返回列表,每一行作为列表中的一个元素,最后返回这个列表,适合读取大文件,比较占内存,该列表可以有Python的for…in…结构进行处理。
语法格式如下:
fileobject = Readlines()
引用代码如下:
pythonwith open("E:\\test.txt","r") as f:
content = f.readlines()
print(content)
for line in content:
print(line.strip())#换行符会代入列表元素中,所以使用strip()将空白去掉
输出结果:
['1、第一行测试数据\n', '2、第二行测试数据\n']
1、第一行测试数据
2、第二行测试数据
三种读取用法可参考:https://blog.csdn.net/Li_haiyu/article/details/80366067
4、write()方法
将字符串写入一个打开的文件,write()方法不会自动再字符串的末尾添加"\n",需要人为在字符串末尾添加。
语法格式如下:
pythonfileobject.write(string)
应用代码如下:
f = open("E:\\test.txt","w")
f.write("Hello world!")
f.close()
必须调用f.close()来关闭文件。当我们写文件时,操作系统往往不会立刻把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()方法时,操作系统才保证把没有写入的数据全部写入磁盘。忘记调用close()的后果是数据可能只写了一部分到磁盘,剩下的丢失了,所以,还是用with open语句更保险一些。
with open()写入内容:
with open("E:\\test.txt","w") as f:
f.write("Hello world!")
5、文件重命名
rename()方法
用于将当前文件名重命名为一个新文件名。
语法格式:
os.rename(current_filename,new_filename)
应用格式:
import os
os.rename("E:\\test.txt","E:\\demo.txt")
6、删除文件
removed()
用于删除系统中已经存在的文件
语法格式:
os.remove(file_name)
应用格式:
import os
os.remove("E:\\test.txt")
三、基本的目录方法
1、创建目录
mkdir()方法
应用格式:
import os
os.mkdir("E:\\test_dir")
2、显示当前工作目录
getcwd()方法
应用格式:
import os
os.getcwd()
3、改变目录
chdir()方法
应用格式:
import os
os.chdir("newdir")
改变当前的工作目录
4、删除目录
rmdir()方法
import os
os.rmdir("E:\\newdir")