文的打开与关闭
打开文件,创建文件
使用open( ) 函数,可以打开一个已经存在的文件,或者创建一个新文件
open(文件路径, 访问模式)
参数说明:
文件路径
文件路径:指的的是绝对位置,完整描述目标文件,以及目录层级关系。如:C:\Test\test.txt,表示C盘下的Test文件夹下的 test.txt文件。
相对路径:是从当前文件所在的文件夹开始的路径。
test.txt 表示在当前文件夹查找test.txt文件
./test.txt也是在当前文件夹查找。 ./表示当前文件夹
../test.txt表示当前文件夹的上一级文件夹里查找。 ../表示的是上一级文件夹
/TEST/test.txt 表示在当前文件夹查找TEST 这个文件夹,并在这个文件夹里面查找 test.txt
访问模式
r :只读方式打开文件,如果指定打开的文件不存在,则报错。默认只读模式。
w :只写模式, 如果指定文件存在,则覆盖。不存在,则创建新文件。但是不能直接创建文件夹
a :用于追加,如果文件存在,新的内容将会被写入到已有内容之后。如果文件不存在,则创建新文件进行写入。
r+ :读写模式,文件指针将会放在文件的开头
w+ :读写模式。如果文件存在则覆盖,不存在则创建。
a+ :读写模式。文件存在则追加在文件末尾,文件不存在则创建新文件用于读写。
rb : 以二进制格式打开一个文件用于追加。文件指针将会放在文件的开头。
rb+ : 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb :以二进制格式打开一个文件只用于写入。如果文件存在,则覆盖,如果文件不存在,创建新文件。
ab : 以二进制格式打开一个文件用于追加。如果文件存在,文件指针会放在文件结尾,新的内容被追加在已有的内容之后。如果文件不存在,创建新文件写入。
wb+ : 以二进制格式打开一个文件用于读写。如果文件存在,则覆盖,如果文件不存在,创建新文件。
ab+ : 以二进制格式打开一个文件用于读写。如果文件存在,则追加,如果文件不存在,创建新文件读写。
文件关闭:
fp.Close( )
如下是测试上述参数的代码:
(1) 'w' 创建文件
fp =open('test.txt', 'w')
fp.write('This the first line text\n')
fp.write('This the second line text\n')
fp.close()
文件test.txt被创建在当前路径下:
write( )函数是不自动换行的,所以字符串后加有换行符 \n
如不添加换行符
fp.write('This the first line text')
fp.write('This the second line text')
输出则是在一行的:
# wreiteLine写入多行
lines = ['This the first line text\n', 'This the second line text\n']
fp =open('test.txt', 'w')
fp.writelines(lines)
fp.close()
(2) 默认模式的只读 ,'r'
读取刚创建的文件内容
with open('test.txt') as f:
for linein f:
print(line, end='')
输出:
This the first line text
This the second line text
这次没有写参数'r',写和不写都是一样的,因为默认是只读的。
with open('test.txt', 'r') as f:
还有一点,为什么这次没有使用Close函数释放文件指针,因为使用是了with语句,会自动在使用完成后释放资源,类似C#中的using语句块。这是推荐使用的方式!!!