孙兴华《中文讲Python从入门到办公自动化》笔记(二) | 您所在的位置:网站首页 › python读取文件夹下的所有文件的数据 › 孙兴华《中文讲Python从入门到办公自动化》笔记(二) |
1 文件的操作(打开、读写、关闭)
1.1 访问模式
总结: 1、访问模式(三个主访问模式) 'r' : 只读(当不指定访问模式时,默认该模式):如果文件不存在报错,不支持写 'w' :写入:如果文件不存在则新建文件,写入时覆盖原有内容 'a' : 追加: 如果文件不存在则新建文件,写入时在原有内容基础上追加新内容 2、访问模式特点('b':二进制,'+':可读可写) r、rb、r+、rb+ :如果文件不存在报错,文件指针在文件开头 w、wb 、w+、 wb+ :如果文件不存在则新建文件,覆盖,文件指针在文件开头 a 、ab、 a+、 ab+ : 如果文件不存在则新建文件,追加,文件指针在文件结尾 1.2 文件打开文件对象 = open('文件名','访问模式') 1.3 文件读写文件对象.write(string ) string 表示要写入文件的字符串(或字节串,仅适用写入二进制文件中)。 a=open("text.txt",'w') a.write("""aaa bbb ccc ddd """) 如果文件内容是中文的,在打开文件时加上参数encoding='UTF-8'。 file2 =open("textZH.txt",'w',encoding='UTF-8') 文件对象.read(num) num表示从文件中读取数据的长度(单位字节),\n占一个字符,省略就表示读取所有数据 文件对象.readlines() 需要赋值给一个变量 将整个文件中的内容一次性读取,并返回一个列表,原文件中每一行数据为一个元素。例如['aaa\n','bbb\n','ccc']。每一行都有换行自带\n,最后一行没有换行不带\n 文件对象.readline() 需要赋值给一个变量 一次性读取一行内容,第一次调用读取第一行,第二次调用读取第二行...不带换行符\n 1.3 文件关闭文件对象.close() 1.4 移动指针文件对象.seek(偏移量,起始位置) 偏移量:假设起始位置是开头,偏移量是5,那文件指针就在第6个字节上 起始位置:0开头,1当前位置,2文件结尾 偏移量和起始位置都为0 时,可以只写一个0 例如已有文件: a=open("text.txt",'r') a.seek(7,0) print(a.read()) a.close()读取结果 2 文件备份文件备份的步骤: 步骤1:用户输入目标文件, file = input('请输入您要备份的文件名:') 步骤2:截取目标文件名并拼接出备份文件的名字 2.1) 提取后缀,找到名字中最右侧的点. 2.2) 拼接新备份文件的名字 = 原名字+[备份]+后缀 步骤3:备份文件写入数据(将原文件内容复制到备份文件) 3.1) 打开原文件和备份文件 3.2) 原文件读取,新文件写入。如果不确定目标文件的大小,循环读取固定大小进行写入,当读取结果为0时,读取结束。 步骤4:关闭文件 def fileBackup(): #1、确定要备份的文件名 fileName = input("请输入要备份的文件名:") #2、截取目标文件名并拼接出备份文件的名字 dotPlace = fileName.rfind('.') #与find()功能相同,但查找方向为右侧开始,找到最右边点的位置 print(dotPlace) if dotPlace > 0 : suffix = fileName[dotPlace:] #点到最后为后缀名 print(suffix) else: print('文件名输入错误') #拼接备份文件的新名字 backupFileName = fileName[:dotPlace] + "_备份_" + suffix print(backupFileName) #3、将原文件的内容分批写入备份文件 oldFile = open(fileName,'rb') backupFile = open(backupFileName,'wb') while True: data = oldFile.read(2048) print(data) print(type(data)) if len(data) == 0: #当读取数据为0时,读完了终止循环 break backupFile.write(data) oldFile.close() backupFile.close() if __name__ == "__main__": fileBackup() 3 文件和文件夹操作文件和文件夹操作需要导入 os 模块,使用模块的相关方法。import os 3.1 文件和文件夹重命名os.rename('旧文件名', '新文件名') #目标文件名可以写路径,否则默认当前文件夹下面 os.rename('旧文件夹名', '新文件夹名') 3.2 删除文件和文件夹os.remove(目标文件名) 没有指定文件会报错,不能删文件夹 os.rmdir(文件夹名字) 没有指定文件夹会报错 3.3 创建文件夹os.mkdir(文件夹名字) 重复创建相同名字的文件夹报错 3.4 获取当前文件所在目录路径os.getcwd() 3.5 改变默认目录os.chdir(目录) :用于改变当前工作目录到指定的路径 例如在文件夹aa目录下创建bb目录: os.chdir('aa') os.mkdir('bb') 3.6 获取某个文件夹下所有文件和文件夹的名称os.listdir(目录) :返回指定文件夹下所有文件和文件夹的名称,不写目录即为当前文件夹下 |
CopyRight 2018-2019 实验室设备网 版权所有 |