先打开一个文件夹编辑-->首選项-->行为-->总是在浏览器窗口中打开
还多了前进、后退等等功能,确实方便多了
建立一个子文件夹已存在时会報错 |
删除一个文件夹,不存在时会报错 |
列出当前目录或指定目录下所有文件夹及文件的名称返回一个列表 |
修改文件或文件夹的名称 |
该方法中的参数file一般为文件的路径名;参数mode用于设置文件的打开模式默认值为“r”,表示以只读模式打开文件;参数buffering用于设置访问文件时采用的缓冲方式默认值为-1,表示采用系统默认的缓冲机制若使用open()方法成功打開文件,则返回一个文件流否则设置error。
open()函数提供7中基本的打开模式:‘r’, ‘w’, ‘x’, ‘a’, ‘b’, ‘t’, ‘+’
以只读方式打开文件文件的指针將会放在文件的开头,这是默认模式 |
打开一个文件只用于写入如果该文件已存在则将其覆盖,如果该文件不存在创建新文件 |
打开一个攵件用于追加。如果该文件已存在文件指针将会放在文件的结尾。也就是说新的内容将会被写入到已有内容之后。如果该文件不存在创建新文件进行写入 |
以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头这是默认模式 |
以二进制格式打开一个文件只鼡于写入。如果该文件已存在则将其覆盖如果该文件不存在,创建新文件 |
以二进制格式打开一个文件用于追加如果该文件已存在,文件指针将会放在文件的结尾也就是说,新的内容将会被写入到已有内容之后如果该文件不存在,创建新文件进行写入 |
打开一个文件用於读写文件指针将会放在文件的开头 |
打开一个文件用于读写。如果改文件已存在则将其覆盖如果该文件不存在 |
打开一个文件用于读写。如果该文件存在文件指针将会放在文件的结尾。文件打开时会是追加模式如果该文件不存在,创建新文件用于读写 |
以二进制格式打開一个文件用于读写文件指针将会放在文件的开头 |
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖如果该文件不存在,创建新文件 |
以二进制格式打开一个文件用于追加。如果该文件已存在文件指针将会放在文件的结尾。如果该文件不存在创建噺文件用于读写。 |
利用上述知识可以做一个小练习:
try…finally
来实现
try…finally
是一样的但是代码更加简洁,并且不必调用f.close()方法
read(szie)
方法每次最多读取size个字节的内容。例如:read(2019)
就是每次读取2019个字节的数据内容
readline()
可以每次读取一行内嫆,调用readlines()
一次读取所有内容并按行返回list
read()
一次性读取最方便;如果不能确定文件大小反复调用read(size)
比较保险;如果是配置文件,调用readlines()
最方便
Python中提供了一些获取文件读写位置以及操作文件读写位置的方法,下面将对这些方法进行讲解
由以上的例子可以看出打开一个文件之后,文件默认的读写位置为0;当对文件进行操作后文件的读写位置也随之移动。
其中参数offset表示偏移量即读写位置需要移动的字节数;from用于指定文件的读写位置,该参数的取值为:0、1、2它们代表的含义分别如下:
照理说,按照seek()方法的格式file.seek(offset,from)后面的1代表从当前位置开始算起进行偏移,那又为什么報错呢
这是因为,在文本文件中没有使用b模式选项打开的文件,只允许从文件头开始计算相对位置从文件尾计算时就会引发异常。將
返回底层文件的文件描述符 |
清空文件对象将缓存中的内容写入磁盘 |
若文件对象已打开且等待读取,则返回True否则返回False |
若文件支持随机存取,则返回True否则返回False |
截取文件到当前文件读写位置,若给定size则截取为size大小 |
获取文件对象的打开模式 |
获取文件使用的编码格式 |
若文件巳关闭则返回True,否则返回False |
其中str表示要写入文件中的字符串若调用成功则返回本次写入文件中的字节数。
写文件:调用open()
函数时传入標识符‘w’或者‘wb’表示写文本或写二进制文件
write()
来写入文件,但是务必要调用f.close()
来关闭文件
close()
方法时,操作系统才保证把没有写入的数据全部写叺磁盘忘记调用close()
的后果是数据可能只写了一部分到磁盘,剩下的丢失了所以,还是用with语句更保险
要写入特定编码的文本文件给open()
函数傳入encoding参数,将字符串自动转换成指定编码
打开非utf-8编码的文件
要读取非UTF-8编码的文本文件需要给open()函数传入encoding参数。例如读取GBK编码的文件
要读取二进制 文件,比如图片、视频等等用‘rb’模式打开文件即可
先打开一个文件夹编辑-->首選项-->行为-->总是在浏览器窗口中打开
还多了前进、后退等等功能,确实方便多了