撩课-Python-每天5道面试题-第9天
2018-12-14 08:38:14来源:博客园 阅读 ()
一. Python程序中, 文件的处理步骤是什么?
打开 open("文件","模式") 读写 2.1 读 f.read(字节数) 字节数默认是文件内容长度 下标会自动后移 f.readline([limit]) 读取一行数据 limit: 限制的最大字节数 f.readlines() 会自动的将文件按换行符进行处理 将处理好的每一行组成一个列表返回 for in 可以直接遍历 f 本身 也可以遍历行列表 2.2 写 f.write("内容") 返回值是写入的字节长度 关闭 f.close() 关闭文件 为什么需要关闭? 打开状态, 会占用系统资源 会把缓冲区内容清空到磁盘文件中
二. 文本打开时设置的模式有哪些? 分别代表什么意思?
基础模式 r 以只读方式打开文件, 这是默认模式 文件的指针将会放在文件的开头 注意: 文件不存在, 会报错 w 以只写方式打开文件 文件的指针将会放在文件的开头 所以, 写入的新内容, 会覆盖旧的内容 注意: 文件不存在, 会自动创建一个新文件 a 以追加方式(只写)打开文件 文件的指针将会放在文件结尾 所以, 写入的内容, 会新增到文件末尾 注意:文件不存在, 会自动创建一个新文件 组合模式-增加b rb wb ab 以二进制格式进行操作文件读写 如果文件是二进制文件, 则选择此项 例如: 图片, 视频, 音频 ... 组合模式-增加+ r+ w+ a+ rb+ rw+ ra+ 代表都是以 "读写模式" 进行打开 其他特性基本和 + 前面的模式一致 但是关于部分操作, 有细节区别
三. os模块中提供的常用文件操作?
模块 import os 信息获取操作 .closed: 返回true如果文件已被关闭,否则返回false .name: 返回文件的名称 其他操作 3.1 重命名 os.rename(‘old_name’, 'new_name') 3.2 删除 os.remove('文件名') 3.3 创建文件夹 os.mkdir("文件夹名称") 3.4 获取当前目录 os.getcwd() 3.5 改变默认目录 os.chdir("目标目录") 3.6 获取目录列表 os.listdir("./")
四. 代码实现: 大文件拷贝操作
注意: 不能一次性读取大文件内容, 容易造成内存峰值
import os os.chdir("files") # 1. 只读模式, 打开要复制的文件 # 追加模式, 打开副本文件 source_file = open("d.txt", "r", encoding="utf-8") dst_file = open("d_bat.txt", "a", encoding="utf-8") # 2. 从源文件中读取内容 # 写入到目标文件中, # 错误写法: 针对于大文件, 不应一次性读取全部内容 # # content = source_file.read() # # dst_file.write(content) while True: content = source_file.read(1024) if len(content) == 0: break print("----", content) dst_file.write(content) # 3. 关闭源文件和目标文件 source_file.close() dst_file.close()
五. 代码实现: 假设一个文件夹中有很多不同格式的文件, 要求: 将不同格式的文件, 划分到不同格式的文件夹下;
例如: a.png b.txt c.avi d.png
划分后:
png文件夹: a.png d.png
txt文件夹: b.txt
avi文件夹: c.avi
import os import shutil # 目标路径 path = "files2" if not os.path.exists(path): exit() os.chdir(path) file_list = os.listdir("./") # print(file_list) # 1. 遍历所有的文件(名称) for file_name in file_list: # print(file_name) # 2. 分解文件的后缀名 # 2.1 获取最后一个.的索引位置 xx.oo.txt index = file_name.rfind(".") if index == -1: continue # print(index) # 2.2 根据这个索引位置, 当做起始位置, 来截取后续的所有字符串内容 extension = file_name[index + 1:] print(extension) # 3. 查看一下, 是否存在同名的目录 # 4. 如果不存在这样的目录 -> 直接创建一个这样名称的目录 # 5, 目录存在 -> 移动过去 if not os.path.exists(extension): os.mkdir(extension) shutil.move(file_name, extension)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 用Python监控你的女朋友/男朋友每天都在看哪些网站! 2019-03-13
- 作为python新手你应该知道的编程技巧! 2019-03-13
- 撩课-Python-每天5道面试题-第8天 2018-12-11
- 撩课-Python-每天5道面试题-第7天 2018-12-09
- 撩课-Python-每天5道面试题-第5天 2018-12-06
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash