python文件操作 电脑版发表于:2021/5/16 17:20 [TOC] #### open函数 open('文件地址','操作文件模式','编码') **参数解释** tn2> file:需要打开的文件路径 mode(可选):打开文件的模式,如只读、追加、写入等 #### mode常用的模式: - r:表示文件只能读取 - w:表示文件只能写入,如果文件不存在就添加文件 - a:表示打开文件,在原有内容的基础上追加内容,在光标处追加。文件不存在就添加文件 - a+: 表示打开文件,在原有内容的基础上追加内容,在末尾写入。文件不存在就添加文件 - w+:表示可以对文件进行读写双重操作,文件不存在就添加文件 mode参数可以省略不填,默认为r模式 #### 读取文件: ``` rfile = open("D:/python_space/test.txt","r") ## 读取所有 rcontent = rfile.read() print(rcontent) ## 读取一行 rcontent = rfile.readline() print(rcontent) ``` 如果读取中文你应该要设置编码方式: ``` ## 读取中文设置和文件编码相同的内容即可,比如"utf-8" file = open("D:/python_space/test2.txt","r",encoding="utf-8") content = file.read() print(content) ``` #### 写入文件: \n是可以换行的 ``` rfile = open("D:/python_space/test.txt","a+") rfile.write("eee\n") ``` ##### writelines可以一次性写入多行 但是要注意传递的是一个list哦,不是直接三个参数 ``` rfile = open("D:/python_space/test.txt","a+") rfile.writelines(["eee\n","aaa\n","bbbb\n"]) ``` #### 重命名文件 ``` import os ## 文件重命名 os.rename("D:/python_space/a.txt","D:/python_space/newname.txt") ``` ##### 重命名文件练习 对data/images文件夹钟的所有文件进行重命名,在文件名前加入new_。如将a.jpg重命名为new_a.jpg ``` #文件操作,改名并打印信息 #需将该文件放置在./data的文件夹上层 import os filenames=os.listdir(".//data/Images") #获取全部文件名 for i in range(0,len(filenames)): pathsrc=os.path.abspath(".//data/Images/"+filenames[i]) #源文件绝对路径 filenames[i]="new_"+filenames[i] #按照要求增加new_ os.rename(pathsrc,".//data/Images/"+filenames[i]) #文件改名 pathdst=os.path.abspath(".//data/Images/"+filenames[i]) #改名后文件绝对路径 print("文件"+pathsrc+"重命名成功,新的文件名为"+pathdst) ``` #### 删除文件 ``` import os ## 删除文件 os.remove("D:/python_space/tes777.txt") ``` 检查文件是否存在,然后删除它: ``` import os if os.path.exists("demofile.txt"): os.remove("demofile.txt") else: print("The file does not exist") ``` #### 判断是否是文件或者文件夹 ##### 判断是否是文件 ``` ## 找是否是文件。也可以用来验证文件是否存在 isfile = os.path.isfile("D:/python_space/test.txt") print(isfile) ``` ##### 判断是否是文件夹 ``` ## 判断是否是文件夹 isdir = os.path.isdir("D:/python_space") print(isdir) ``` #### 获取一个文件夹下所有的内容 ``` ## 获取一个文件夹下所有的内容 files = os.listdir("D:/python_space/test") print(files) for dir in files: print(dir) ``` #### 删除文件夹 只能删除空文件夹 ``` import os os.rmdir("D:/python_space/ss") ``` #### python 删除文件夹下面的所有文件 ``` import os CUR_PATH = r'C:\Users\xxx\Desktop\新建文件夹' def del_file(path): ls = os.listdir(path) for i in ls: c_path = os.path.join(path, i) if os.path.isdir(c_path): del_file(c_path) else: os.remove(c_path) del_file(CUR_PATH) ``` #### python删除文件夹下面的所有文件夹及子文件 ``` #!/usr/bin/env python import os import shutil filelist=[] rootdir=r"C:\Users\xxx\Desktop\新建文件夹" filelist=os.listdir(rootdir) for f in filelist: filepath = os.path.join( rootdir, f ) if os.path.isfile(filepath): os.remove(filepath) #print filepath+" removed!" elif os.path.isdir(filepath): shutil.rmtree(filepath,True) #print "dir "+filepath+" removed!" ```