python下的文件相关操作
2017-04-20 21:41
441 查看
python中对文件、文件夹(文件操作函数)涉及到的主要两个模块:os和shutil
os是一个基础的文件操作,shutil是一种高层次的文件操作工具
读取当前python的工作目录: os.getcwd()
返回指定目录下的所有文件和目录名: os.listdir(path),其中path为指定路径
函数用来删除一个文件:os.remove(path)
检验给出的路径是否是一个文件:os.path.isfile(path)
检验给出的路径是否是一个目录:os.path.isdir(path)
检验给出的路径是否真地存:os.path.exists(path)
返回一个路径的目录名和文件名:os.path.split()
分离扩展名:os.path.splitext()
所以获得文件的后缀类型可以用:
获取路径名:os.path.dirname(path)
获取文件名:os.path.basename(path)
重命名:os.rename(old, new)
创建多级目录:os.makedirs(path)
创建单个目录:os.mkdir(path)
获取文件大小:os.path.getsize(filename)
8538就是图像的所有内存大小,单位为B
常见的方式:
假设txt中存着3行3列数
fp.read(size) ,size为读取的长度,以byte为单位
fp.readline() ,读一行,fp指向下一行
fp.readlines() ,读全部行,存起来为list
fp.write(str) ,把str写到文件中,write()并不会在str后加上一个换行符
fp.writelines(seq) , 把seq的内容全部写到文件中(多行一次性写入)
fp.close() , 关闭文件。
fp.next() , 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
shutil.copyfile(‘oldfile’,’newfile’)
oldfile和newfile都只能是文件
shutil.copy(‘oldfile’,’newfile’)
oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree(‘olddir’,’newdir’)
olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename(‘oldname’,’newname’)
文件或目录都是使用这条命令
移动文件(目录)
shutil.move(‘oldpos’,’newpos’)
删除文件
os.remove(‘file’)
删除目录
os.rmdir(‘dir’) ,只能删除空目录
shutil.rmtree(‘dir’), 空目录、有内容的目录都可以删
os是一个基础的文件操作,shutil是一种高层次的文件操作工具
关于os的操作,主要集中在文件、文件夹读取方面
使用前加入包: import os
读取当前python的工作目录: os.getcwd()
>>> path = os.getcwd() >>> path 'D:\\myself\\python\\docment'
返回指定目录下的所有文件和目录名: os.listdir(path),其中path为指定路径
>>> path = 'D:\\myself\\python\\docment' >>> str = os.listdir(path) >>> str ['.idea', '1.jpg', 'tutorials', 'unet', 'untitled0.py', '__pycache__']
函数用来删除一个文件:os.remove(path)
检验给出的路径是否是一个文件:os.path.isfile(path)
检验给出的路径是否是一个目录:os.path.isdir(path)
>>>path = 'D:\\myself\\python\\docment' >>> os.path.isfile(path) False >>> os.path.isdir(path) True
检验给出的路径是否真地存:os.path.exists(path)
返回一个路径的目录名和文件名:os.path.split()
>>> path = 'D:\\myself\\python\\docment\\1.jpg' >>> os.path.split(path) ('D:\\myself\\python\\docment', '1.jpg')
分离扩展名:os.path.splitext()
>>> os.path.splitext(path) ('D:\\myself\\python\\docment\\1', '.jpg')
所以获得文件的后缀类型可以用:
>>> file = os.path.splitext(path) >>> file[1][1:] 'jpg'
获取路径名:os.path.dirname(path)
获取文件名:os.path.basename(path)
>>> path 'D:\\myself\\python\\docment\\1.jpg' >>> os.path.dirname(path) 'D:\\myself\\python\\docment' >>> os.path.basename(path) '1.jpg'
重命名:os.rename(old, new)
>>> old_name = 'D:\\myself\\python\\docment\\1.jpg' >>> new_name = 'D:\\myself\\python\\docment\\2.jpg' >>> os.rename(old_name, new_name) >>> os.listdir(path) ['.idea', '2.jpg', 'tutorials', 'unet', 'untitled0.py', '__pycache__']
创建多级目录:os.makedirs(path)
创建单个目录:os.mkdir(path)
获取文件大小:os.path.getsize(filename)
path = 'D:\\myself\\python\\docment\\2.jpg' >>> os.path.getsize(path) 8538
8538就是图像的所有内存大小,单位为B
关于文件读写的操作
fp = open(“test.txt”,’r+’) 直接打开一个文件常见的方式:
w 以写方式打开, a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ )
假设txt中存着3行3列数
fp.read(size) ,size为读取的长度,以byte为单位
>>> fp.close() >>> fp = open('test.txt','r+') >>> fp.read(5) '1 1 1'
fp.readline() ,读一行,fp指向下一行
>>> fp.close() >>> fp = open('test.txt','r+') >>> fp.readline() '1 1 1\n' >>> fp.readline() '2 2 2\n' >>> fp.readline() '3 3 3'
fp.readlines() ,读全部行,存起来为list
>>> fp.close() >>> fp = open('test.txt','r+') >>> fp.readlines() ['1 1 1\n', '2 2 2\n', '3 3 3']
fp.write(str) ,把str写到文件中,write()并不会在str后加上一个换行符
>>> fp.close() >>> fp = open('test.txt','r+') >>> fp.readlines() ['1 1 1\n', '2 2 2\n', '3 3 3']
>>> fp.write('\n4 4 4')
>>> fp.close()
>>> fp = open('test.txt','r+')
>>> fp.readlines()
['1 1 1\n', '2 2 2\n', '3 3 3\n', '4 4 4']
fp.writelines(seq) , 把seq的内容全部写到文件中(多行一次性写入)
fp.close() , 关闭文件。
fp.next() , 返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
shutil高级应用的操作,集中在文件复制删除等等
使用前加入包: import shutil
shutil.copyfile(‘oldfile’,’newfile’)
oldfile和newfile都只能是文件
shutil.copy(‘oldfile’,’newfile’)
oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree(‘olddir’,’newdir’)
olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename(‘oldname’,’newname’)
文件或目录都是使用这条命令
移动文件(目录)
shutil.move(‘oldpos’,’newpos’)
删除文件
os.remove(‘file’)
删除目录
os.rmdir(‘dir’) ,只能删除空目录
shutil.rmtree(‘dir’), 空目录、有内容的目录都可以删
读写操作与读取文件夹文件代码模板
# 读取文件内容并打印 def readFile(filename): fopen = open(filename, 'r') # r 代表read for eachLine in fopen: print("读取到得内容如下:",eachLine) fopen.close()
# 输入多行文字,写入指定文件并保存到指定文件夹 def writeFile(filename): fopen = open(filename, 'w') print("\r请任意输入多行文字"," ( 输入 .号回车保存)") while True: aLine = input() if aLine != ".": fopen.write('%s%s' % (aLine, os.linesep)) else: print("文件已保存!") break fopen.close()
#读取dir目录下(包含子文件夹下)的所有类型为ext的文件 def GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for root,dirs,files in os.walk(dir): for filespath in files: filepath = os.path.join(root, filespath) extension = os.path.splitext(filepath)[1][1:] #分离扩展名 if needExtFilter and extension == ext: allfiles.append(filepath) return allfiles
#读取dir目录下(不包含子文件夹下)的所有类型为ext的文件 def GetFileFromThisDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for files in os.listdir(dir): extension = os.path.splitext(files)[1][1:] #分离扩展名 if needExtFilter and extension == ext: allfiles.append(filepath) return allfiles
相关文章推荐
- Python文件夹与文件的相关操作(推荐)
- python文件相关操作
- python在Mac中读写文件的相关操作
- Python打开、读取文件相关操作
- python 读取文件 并实现文件相关操作最后导出excel
- python3 操作文件相关
- python文件相关操作
- python os目录和文件相关操作
- python基础(五)--文件的相关操作
- 基础知识(八)python文件操作相关函数
- python3 文件相关操作
- python 文件操作相关函数用法总结
- python 文件读写查找、替换相关简单操作
- 文件/字符串操作相关的python程序
- python文件相关操作总结
- python 关于操作文件的相关模块(os,sys,shutil,subprocess,configparser)
- Python 文件读取相关操作函数
- Python文件复制中如何复制相关文件的实际操作
- python文件操作相关
- python:文件的相关操作