python 文件操作 复制-python 操作文件模块
总是记不住API。 写的时候用到这些,没记住,就简单整理一下,方便自己和大家:
python中对文件和文件夹的操作(文件操作函数)需要涉及到os模块和shutil模块。
获取当前工作目录,即当前Python脚本工作的目录路径:os.getcwd()
返回指定目录下的所有文件和目录名:os.listdir()
该函数用于删除文件:os.remove()
删除多个目录:os.removedirs(r "c:\python")
检查给定路径是否为文件:os.path.isfile()
检查给定路径是否为目录:os.path.isdir()
判断是否为绝对路径:os.path.isabs()
检查给定路径是否实际存在:os.path.exists()
返回路径的目录名和文件名:os.path.split()
例如 os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt')
分割扩展:os.path.splitext()
获取路径名:os.path.dirname()
获取文件名:os.path.basename()
运行 shell 命令:os.system()
读取和设置环境变量:os.getenv() 和 os.putenv()
给出当前平台使用的行终止符:os.linesep Windows 使用'\r\n',Linux 使用'\n',Mac 使用'\r'
指明您正在使用的平台:os.name 对于 Windows,它是“nt”,对于 Linux/Unix 用户,它是“posix”
重命名:os.rename(旧的,新的)
创建多级目录:os.makedirs(r "c:\python\test")
创建一个目录:os.mkdir("test")
获取文件属性:os.stat(file)
修改文件权限和时间戳:os.chmod(file)
终止当前进程:os.exit()
获取文件大小:os.path.getsize(filename)
文件操作:
os.mknod("test.txt") 创建一个空文件
fp = open("test.txt",w) 直接打开一个文件,如果文件不存在则创建文件
关于开放模式:
w 打开写入,
a 以追加模式打开(从 EOF 开始,必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开(见 w )
a+ 以读写模式打开(见 a)
rb 以二进制读取模式打开
wb 以二进制写模式打开(见 w)
ab 以二进制追加模式打开(见 a)
rb+ 以二进制读写模式打开(参见 r+ )
wb+ 以二进制读写模式打开(参见 w+ )
ab+ 以二进制读写模式打开(参见 a+ )
fp.read([size])#size是读取的长度,以字节为单位
fp.readline([size]) #读取一行,如果定义了size,可以只返回一行的一部分
fp.readlines([size]) #将文件的每一行作为一个列表的成员,返回列表。 其实内部是通过循环调用readline()来实现的。 如果提供size参数,size表示读取内容的总长度,也就是说可能只读取文件的一部分。
fp.write(str) #将str写入文件,write()不会在str后面加换行
fp.writelines(seq) #将seq的所有内容写入文件(一次写入多行)。 这个函数也是如实写的,没有在每一行附加任何东西。
fp.close() #关闭文件。 Python会在一个文件不用后自动关闭,但这个功能并不能保证,最好养成自己关闭的习惯。 如果关闭文件然后对其进行操作,将引发 ValueError
fp.flush() #将缓冲区的内容写入硬盘
fp.fileno() #返回一个长整数“文件标签”
fp.isatty() #文件是否为终端设备文件(unix系统下)
fp.tell() #返回文件操作标记的当前位置,以文件开头为原点
fp.next() #返回下一行,将文件操作标记移到下一行。 当一个文件用于for ... in file这样的语句时,会调用next()函数来实现遍历。
fp.seek(offset[,whence]) #将文件操作标记移动到offset的位置。 这个偏移量一般是相对于文件开头计算的,一般是正数。 但是如果提供了whence参数python 文件操作 复制,就没有必要了。 Whence可以为0从头开始计算,为1则从当前位置为原点计算。 2表示以文件末尾为原点计算。 需要注意的是,如果以a或a+方式打开文件,则每次执行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size]) #将文件剪切到指定大小python 文件操作 复制,默认是剪切到当前文件操作标记的位置。 如果size大于文件大小,根据系统的不同,文件可能不会被改变,或者文件会被0填充到相应的size,或者添加一些随机的内容。
目录操作:
os.mkdir("file") 创建目录
复制文件:
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.rmdir("dir") 只能删除空目录
shutil.rmtree("dir") 空目录和有内容的目录可以删除
转换目录
os.chdir("path") 改变路径
相关例子
1 在文件夹中所有图片的名称中添加'_fc'
蟒蛇代码:
# -*- 编码:utf-8 -*-
重新进口
导入操作系统
导入时间
#str.split(string) 拆分字符串
#'connector'.join(list) 将列表形成一个字符串
def 更改名称(路径):
全局我
如果不是 os.path.isdir(path) 也不是 os.path.isfile(path):
返回假
如果 os.path.isfile(路径):
file_path = os.path.split(path) #拆分出目录和文件
lists = file_path[1].split('.') #拆分出文件和文件扩展名
file_ext = lists[-1] #取出后缀名(list切片操作)
img_ext = ['bmp','jpeg','gif','psd','png','jpg']
如果 img_ext 中的 file_ext:
os.rename(path, file_path[0]+'/'+lists[0]+'_fc.'+file_ext)
i+=1 #注意这里的i是一个陷阱
#或者
#img_ext = 'bmp|jpeg|gif|psd|png|jpg'
#if file_ext 在 img_ext:
# print('确定---'+file_ext)
elif os.path.isdir(路径):
对于 os.listdir(路径)中的 x:
change_name(os.path.join(path,x)) #os.path.join() 在路径处理中很有用
img_dir = 'D:\\xx\\xx\\图片'
img_dir = img_dir. 代替('\\','/')
开始=时间。 时间()
我 = 0
更改名称(img_dir)
c = time.time() - 开始
print('程序运行时间:%0.2f'%(c))
print('共处理了%s张图片'%(i))
输出结果:
程序运行时间:0.11
共处理了109张图片
磊类:
为了提高教育质量,
让教育更有想象力!
感觉不错,
点击这里,让更多人看到!