dukejunior
——未来程式工作室

总结

01、

02、

03、

04、

05、

06、

07、

08、

09、

10、

01、Python 中可以使用一个文件对象 file 来做大部分文件操作,它有两个函数 file()和 open()

02、文件路经: 前期的时候我们写成固定的(绝对和相对路经),也可以使用 os 模块来辅助完成

03、mode 权限: r(read)读权限,w(write)写权限,a(add)追加写

04、buffering(了解),是否启用缓存:系统默认 -1 ; 0 不启用; 1 启用行缓存;行缓冲就是说每一行刷新一次缓冲区,就是见到换行符的时候把缓冲区的内容送到指定位置

访问模式
说明
r
以叧读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w
打开一个文件叧用亍写入。如果该文件已存在则将其覆盖。如果该文件丌存在,创建新文
件。
a
打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,
新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb
以二进制格式打开一个文件用于叧读。文件指针将会放在文件的开头。这是默认模式
wb
以二进制格式打开一个文件叧用于写入。如果该文件已存在则将其覆盖。如果该文件不存
在,创建新文件。
ab
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。
也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
r+
打开一个文件用于读写。文件指针将会放在文件的开头。
w+
打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+
打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时
会是追加模式。如果该文件不存在,创建新文件用于读写。
rb+
以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+
以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,
创建新文件。
ab+
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。
如果该文件不存在,创建新文件用于读写。

05、File.closed 如果文件被关闭返回 true,否则返回 false

06、File.mode 返回文件被打开的访问模式

07、File.name 返回文件的名称

08、f = open('1.txt','r',encoding='utf-8') #判断是否关闭 print(f.closed)#打印权限 print(f.mode)#打印文件的name print(f.name)#文件关闭 f.close()

09、文件读取(面试题) f = open('1.py','r',encoding='utf-8') #遍历进行读取 for i in f: print(i) | f.close()

10、read()会一次性读取文件的全部内容,但是如果文件太大,内存就爆了,会导致程序卡死;可以反复调用 read(size)方法,每次最多读取 size 个字符的内容,python 3.7每个汉字算一个字符

11、readline()可以每次读取一行内容,调用 readlines()一次读取所有内容并按行返回 list

12、f = open('1.py','r',encoding='utf-8') #读取所有内容 # print(f.read(10)) #读取一行 # print(f.readline()) #读取所有 并且按照 list 承载 print(f.readlines()) f.close()

13、file.write('你好呀,hello,world')的参数是一个字符串,就是你要写入文件的内容;file.writelines(['a','b','c'])的参数是序列,比如列表,它会迭代帮你写入文件

14、close()方法关闭一个已经打开的文件对象,文件关闭后不能再执行读写操作。 不去手动关闭文件,会一直占用我们的内存;

15、with 语句来自动帮我们调用 close()方法,紧跟 with 后面的语句被求值后,返回对象的“__enter__()”方法被调用,这个方法的返回值 将被赋值给 as 后面的变量;当 with 后面的代码块全部被执行完之后,将调用前面返回对象的“__exit__()”方法

16、图片文件以二进制形式打开,写入:with open('for.png','rb') as png1:with open('shu.png','wb') as png2:png2.write(png1.read())

17、 tell() 方法返回文件的当前位置,即文件指针当前位置;叧要控制了文件指针,就能重复的读取了;pos = f.tell() print('当前叧针的位置%s'%pos):当前指针的位置 152

18、seek()方法用于移动文件读取指针到指定位置;fileObject.seek(offset[, whence]),offset 移动的长度(字节),whence 相对位置;0 从开头(默认),1 从当前,2 从末尾;如果 offset 为负数,表示从后往前移动 n 个字节

19、电子书现在有自动翻页功能(死循环,深度循环);有手动输入功能(在深度循环中加入判断条件);

os 常用功能
os.sep
符合当前系统的路径分割符,Linux/windows\
os.name
返回操作系统类型 windows “nt”    Linux “posix”
os.rename
更改文件名,传递两个参数(旧文件名,新文件名)
os.getcwd
返回当前的工作目录
os.listdir
列出指定目录下的目录和文件
os.chdir 修改当前的工作路径(谨慎更改
os.mkdir 创建目录
os.makedirs 递归创建目录
os.remove 删除文件
os.rmdir 删除文件夹(文件夹下内容为空)
os.removedirs
递归删除文件夹
os.system 执行系统命令
os.popen 执行系统命令,会将结果以文件的形式返回
os.walk
通过在目录树中游走输出在目录中的文件名,向上或者向下
os.path.join
连接目录和文件名。os.path.join(path,name) 
os.path.isfile
判断指定对象是否为文件。是返回 True,否则 False
os.path.isdir
判断指定对象是否为目录。是 True,否则 False
os.path.split
返回路径的目录和文件名
os.path.exists
检验指定的对象是否存在。是 True,否则 False
os.path.getsize
获取指定对象的文件大小
os.path.abspath
获得绝对路径
os.path.basename
返回文件名
os.path.dirname
返回文件所在目录

20、os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面 的事情。在 Unix,Windows 中有效。os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) top 代表的是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。 root 所指的是当前正在遍历的这个文件夹的本身的地址。 dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括文件名)。 files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。

21、如何批量修改文件夹下的文件名?(面试题):import os m_name = os.listdir('./xuegod/') #对该目弽下的文件遍历 for temp in m_name: #新的文件名 new_name = 'xuegod'+temp #更改文件名,前参数 代表老文件名,后面的参数代表新的文件名 os.rename('./xuegod/'+temp,'./xuegod/'+new_name)

22、得到路径下所有的文件的绝对路径?(面试题):import os def iterbrowse(path): #返回路径,目录,文件; for home,dirs,files in os.walk(path): #对文件进行遍历 for file in files: #拼接路径和 name print(os.path.join(home,file)) #处理当前的文件路径 new_path = os.getcwd() #调用 iterbrowse(new_path)

posted on 2019-10-25 11:21  公爵二世  阅读(84)  评论(0)    收藏  举报