返回顶部
首页 > 资讯 > 后端开发 > Python >python 文件和路径操作函数小结
  • 574
分享到

python 文件和路径操作函数小结

小结路径函数 2023-01-31 02:01:01 574人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk(path,visit,arg) path

1: os.listdir(path) //path为目录 
功能相当于在path目录下执行dir命令,返回为list类型 
print os.listdir('..') 
2: os.path.walk(path,visit,arg) 
path :是将要遍历的目录 
visit :是一个函数指针,函数圆形为: 
callback(arg,dir,fileList) 
其中arg为为传给walk的arg , dir是path下的一个目录,fileList为dir下的文件和目录组成的list, arg:传给visit用的 
3:os.path.split(path) 
path 为一个路径, 
输出,把path分成两部分,具体看实例: 
print os.path.split("abc/de.txt") 
('abc', 'de.txt') 
os.path.split("abc") 
(", 'abc') 
print os.path.split("de/abc/de") 
('de/abc', 'de') 
4: os.path.splitext(filename) 
把文件名分成文件名称和扩展名 
os.path.splitext(abc/abcd.txt) 
('abc/abcd', '.txt') 
5: os.path.dirname(path) 
把目录名提出来 
print os.path.dirname("abc") 
#输出为空 
print os.path.dirname('abc\def') 
abc 
6: os.path.basename(filename) 
取得主文件名 
print os.path.basename('abc') 
abc 
print os.path.basename('abc.txt') 
abc 
print os.path.basename('bcd/abc') 
abc #这个需要注意不包括目录名称 
print os.path.basename('.') 

7:os.mkdir(path, [mode]) 
path为目录名: 这里有个要求,只能创建一级目录 
比如path为 abc/def 则当前目录下必须存在abc 否则失败 
8: os.makedirs(path [,mode]) 
可以创建多级目录 
9:os.remove(path)删除一个文件,一定是一个文件 
os.removedirs(path) 删除一个目录下所有东西 
os.rmdir(path) 删除一个目录,而且一定要空,否则os.errer 
10:os.walk(path) 
遍历path,返回一个对象,他的每个部分都是一个三元组 
('目录x',[目录x下的目录list],目录x下面的文件) 
举例: 
a = os.walk('.') 
for i in a: 
print i 
11:shutil.copy(src,dst) 
把文件src内容拷贝到文件dst中。,目标区域必须可以写,如果dst存在,则dst被覆盖 
―――――――――――――――――― 
11.1 os.path -- 普通的路径名操作 
这个模块实现一些在路径名称上有用的函数。 
警告:在 windows 上,这些函数中的多个不能正确地支持 UNC 路径名。splitunc() 和 ismount() 可以正确地处理它们。 
abspath(path) 
返回 path 路径名一个规格化的绝对化的版本。在大多数平台上,相当于nORMpath(join(os.getcwd(), path))。1.5.2版本中的新特性。 
basename(path) 
返回 path 路径名最底部的名称。这是由 split(path)返回的对的第二半部分。注意这个函数的结果不同于Unix basename 程序;UNIX的 basename对于'/foo/bar/' 返回 'bar',basename() 函数返回一个空字符串('')。 
commonprefix(list) 
返回最长的路径前缀(采取字符的字符),是 list中所有路径的一个前缀。如果 list 为空,返回空字符串('')。注意可以返回无效的路径因为它每次操作一个字符。 
dirname(path) 
返回 path 路径名的目录名称。这是由 split(path)返回的对的第一半部分。 
exists(path) 
如果 path 与一个已存在的路径关联返回True。对于损坏的符号连接返回 False 。在一些平台上,如果权限没有被授予在请求的文件上执行os.stat()这个函数可能返回False,即使该 path 实际上存在。 
lexists(path) 
如果 path 与一个已存在的路径关联返回 True 。对于损坏的连接返回 True 。在一些缺少 os.lstat()的平台上相当于 exists() 。2.4版本中的新特性。 
expanduser(path) 
在 Unix上,返回 "~"或"~user"做为替换用户的主目录的开始部分的参数。开始的"~" 通过环境变量 HOME(如果它被设置)替换; 否则当前用户的主目录在口令目录中通过内置模块 pwd被查询。开始的"~user" 直接地在口令目录中被查询。 
在 Windows 上,仅支持 "~" ;它通过环境变量 HOME 或通过HOMEDRIVE 和 HOMEPATH的组合替换。 
如果该扩充失败或如果该路径不以一个波浪号开始,被返回的路径无改变。 
expandvars(path) 
返回使用环境变量扩充的参数。"$name" 或 "${name}"格式的子串通过环境变量 name 的值被替换。残缺的变量名称和引用不存在的变量被无改变的遗弃。 
getatime(path) 
返回 path 的最后访问时间。返回的值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。 
getmtime(path) 
返回 path 最后修改的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。2.3版本中的改变:如果 os.stat_float_times() 返回True,结果是一个浮点数。 
getctime(path) 
返回系统的 ctime ,在一些系统上 (像Unix) 是最后改变的时间,在其他一些系统上 (像Windows),是 path 创建的时间。返回值是一个从新纪元开始的秒数(参见 time 模块)。如果文件不存在或不可访问挂起 os.error 。2.3版本中的新特性。 
getsize(path) 
以字节为单位,返回 path 的大小。如果文件不存在或不可访问挂起 os.error 。1.5.2版本中的新特性。 
isabs(path) 
如果 path 是一个绝对路径名返回True (以一个斜杠开始)。 
isfile(path) 
如果 path 是一个已存在的普通文件返回True 。这效仿符号连接,因此 islink() 和 isfile() 对于相同的路径都可以返回 true 。 
isdir(path) 
如果 path 是一个已存在的目录返回 True 。这效仿符号链接,因此 islink() 和 isdir() 对于相同的路径都可以返回 true 。 
islink(path) 
如果 path 引用一个目录项,它是一个符号连接,返回True。如果不支持符号连接始终返回 False 。 
ismount(path) 
如果路径名 path是一个 挂载点 返回 True :在文件系统中的那个点一个不同的文件系统已经被挂载。这个函数检测是否 path的父路径, path/..,和 path 是一个不同的设备,或是否 path/.. 和 path 在相同的设备上指向相同的i-node -- 这应该是为所有的 Unix 和 POSIX 变种检测挂载点。 
join(path1[, path2[, ...]]) 
智能化地连接一个或多个路径组件。如果任一组件是一个绝对路径,所有前面的组件被丢弃(在Windows 上,包括前面的驱动器名,如果有) ,并且继续连接。返回的值是 path1,和可选地 path2等的组合,正确地以一个目录分隔符 (os.sep)插入到两个组件之间,除非 path2 为空。注意在 Windows 上,因为每个驱动器有一个当前目录,os.path.join("c:", "foo")表示相对于驱动器 C: 上的当前目录的一个路径(c:foo),而不是 c:\\foo。 
normcase(path) 
标准化一个路径名的大小写。在Unix上,返回未改变的路径;在不区分大小写的文件系统上,它转换路径为小写字母。在Windows上 ,它也转换正斜杠为反斜杠。 
normpath(path) 
标准化一个路径名。折叠多余(或冗长的)分隔符并且定位于外层引用,以致于 A//B,A/./B 和 A/foo/../B 都变成 A/B。它不标准化大小写(标准化大小写用 normcase())。在Windows上,它转换正斜杠为反斜杠。如果它包含符号连接,它应该明白这可能改变路径的意图! 
realpath(path) 
返回指定的文件名标准的路径,除去在路径中遇到的任何符号连接(如果操作系统支持)。2.2版本中的新特性。 
samefile(path1, path2) 
如果路径名参数与相同的文件或目录关联返回 True (通过设备号和 i-node 数表示)。如果 os.stat() 调用每个路径名失败挂起一个异常。有效的:Macintosh,Unix。 
sameopenfile(fp1, fp2) 
如果文件描述符 fp1 和 fp2 与相同的文件关连返回 True 。有效的:Macintosh,Unix。 
samestat(stat1, stat2) 
如果 stat 元组 stat1和stat2 与相同的文件关连返回 True 。这个结构可能由fstat(),lstat(),或stat()返回。这个函数使用samefile() 和 sameopenfile()实现了基本的比较。有效的:Macintosh,Unix。 
split(path) 
分割路径名 path 到一个对中,(head, tail)中 tail 是最后的路径名组件head 是引导它的任何事物。tail 部分将一直都不包括斜线;如果 path 以一个斜线结尾,tail 将为空。如果 path 中没有斜线,head 将为空。如果 path 为空,head 和 tail 都为空。尾随斜线从 head 中被去除,除非它是根(one or more slashes only)。在几乎所有的情况中,join(head, tail) 相当于 path (只有一个例外是当从 tail 中 head 被多个斜线分割时)。 
splitdrive(path) 
分割路径名 path 到一个(drive, tail) 对中,drive 是每个驱动器的说明或空字符串。在系统上不使用驱动器说明的,drive 将一直是空字符。在所有情况中,drive + tail 将和 path 相同。1.3版本中的新特性。 
splitext(path) 
分割路径名 path 到一对 (root, ext) 中以致 root + ext == path,并且ext 为空或以一个句点开始并且只多包含一个句点。 
splitunc(path) 
分割路径名 path 到一个对(unc, rest)中以便于 unc 是 UNC 挂载点 (诸如 r'\\host\mount'),如果,并且 rest 路径的其余部分(诸如 r'\path\file.ext')。对于路径包含驱动器名,unc 将一直是空字符。有效的:Windows。 
walk(path, visit, arg) 
对于以 path 为根的目录树中的每一个目录 (包含 path 自身,如果它是一个目录),以参数 (arg, dirname, names)调用函数 visit 。参数 dirname 指定访问的目录,参数 names 列出在目录中的文件(从 os.listdir(dirname)中得到)。visit 函数可以修改 names 改变 dirname 下面访问的目录的设置,例如,避免访问树的某一部分。(由 names 关连的对象必须在合适的位置被修改,使用 del 或 slice 指派。) 
注意:符号连接到目录不被作为一个子目录处理,并且因此 walk()将不访问它们。访问连接的目录你必须以os.path.islink(file) 和 os.path.isdir(file)标识它们,并且必须调用walk() 。


一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。
1.得到当前工作目录,即当前python脚本工作的目录路径: os.getcwd()
2.返回指定目录下的所有文件和目录名:os.listdir()
3.函数用来删除一个文件:os.remove()
4.删除多个目录:os.removedirs(r“c:\Python”)
5.检验给出的路径是否是一个文件:os.path.isfile()
6.检验给出的路径是否是一个目录:os.path.isdir()
7.判断是否是绝对路径:os.path.isabs()
8.检验给出的路径是否真地存:os.path.exists()
9.返回一个路径的目录名和文件名:os.path.split()     eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt') 
10.分离扩展名:os.path.splitext()
11.获取路径名:os.path.dirname()
12.获取文件名:os.path.basename()
13.运行shell命令: os.system()
14.读取和设置环境变量:os.getenv() 与os.putenv()
15.给出当前平台使用的行终止符:os.linesep    Windows使用'\r\n',linux使用'\n'而Mac使用'\r'
16.指示你正在使用的平台:os.name       对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'
17.重命名:os.rename(old, new)
18.创建多级目录:os.makedirs(r“c:\python\test”)


19.创建单个目录:os.mkdir(“test”)


20.获取文件属性:os.stat(file)


21.修改文件权限与时间戳:os.chmod(file)


22.终止当前进程:os.exit()


23.获取文件大小:os.path.getsize(filename)
二、文件操作方法大全:
1.os.mknod("test.txt")             #创建空文件
2.fp = open("test.txt",w)          #直接打开一个文件,如果文件不存在则创建文件
3.关于open 模式:

复制代码代码如下:

w:以写方式打开,
a:以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+:以读写模式打开
w+:以读写模式打开 (参见 w )
a+:以读写模式打开 (参见 a )
rb:以二进制读模式打开
wb:以二进制写模式打开 (参见 w )
ab:以二进制追加模式打开 (参见 a )
rb+:以二进制读写模式打开 (参见 r+ )
wb+:以二进制读写模式打开 (参见 w+ )
ab+:以二进制读写模式打开 (参见 a+ )


fp.read([size])                     #size为读取的长度,以byte为单位


fp.readline([size])                 #读一行,如果定义了size,有可能返回的只是一行的一部分


fp.readlines([size])                #把文件每一行作为一个list的一个成员,并返回这个list。其实它的内部是通过循环调用

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()                           #返回下一行,并将文件操作标记位移到下一行。把一个file用于for … in file这样的语句时,就是调用next()函数来实现遍历的。
fp.seek(offset[,whence])            #将文件打操作标记移到offset的位置。这个offset一般是相对于文件的开头来计算的,一般为正数。但如果提供了whence参数就不一定了,whence可以为0表示从头开始计算,1表示以当前位置为原点计算。2表示以文件末尾为原点进行计算。需要注意,如果文件以a或a+的模式打开,每次进行写操作时,文件操作标记会自动返回到文件末尾。
fp.truncate([size])                 #把文件裁成规定的大小,默认的是裁到当前文件操作标记的位置。如果size比文件的大小还要大,依据系统的不同可能是不改变文件,也可能是用0把文件补到相应的大小,也可能是以一些随机的内容加上去。
三、目录操作方法大全
1.创建目录
os.mkdir("file")                   
2.复制文件:
shutil.copyfile("oldfile","newfile")        #oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile")            #oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
3.复制文件夹:
4.shutil.copytree("olddir","newdir")        #olddir和newdir都只能是目录,且newdir必须不存在
5.重命名文件(目录)os.rename("oldname","newname")              #文件或目录都是使用这条命令
6.移动文件(目录)
shutil.move("oldpos","newpos")   
7.删除文件
os.remove("file")
8.删除目录
os.rmdir("dir")                             #只能删除空目录
shutil.rmtree("dir")                        #空目录、有内容的目录都可以删
9.转换目录
os.chdir("path")                            #换路径
四、文件综合操作实例
将文件夹下所有图片名称加上'_fc'
python代码:

复制代码代码如下:

# -*- coding:utf-8 -*-
import re
import os
import time
#str.split(string)分割字符串
#'连接符'.join(list) 将列表组成字符串
def change_name(path):
    global i
    if not os.path.isdir(path) and not os.path.isfile(path):
        return False
    if os.path.isfile(path):
        file_path = os.path.split(path) #分割出目录与文件
        lists = file_path[1].split('.') #分割出文件与文件扩展名
        file_ext = lists[-1] #取出后缀名(列表切片操作)
        img_ext = ['bmp','jpeg','gif','psd','png','jpg']
        if file_ext in img_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 in img_ext:
        #    print('ok---'+file_ext)
    elif os.path.isdir(path):
        for x in os.listdir(path):
            change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用


img_dir = 'D:\\xx\\xx\\p_w_picpaths'
img_dir = img_dir.replace('\\','/')
start = time.time()
i = 0
change_name(img_dir)
c = time.time() - start
print('程序运行耗时:%0.2f'%(c))
print('总共处理了 %s 张图片'%(i))



--结束END--

本文标题: python 文件和路径操作函数小结

本文链接: https://lsjlt.com/news/186444.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python 文件和路径操作函数小结
    1: os.listdir(path) //path为目录 功能相当于在path目录下执行dir命令,返回为list类型 print os.listdir('..') 2: os.path.walk(path,visit,arg) path...
    99+
    2023-01-31
    小结 路径 函数
  • Python中如何操作文件路径
    本篇文章为大家展示了Python中如何操作文件路径,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python文件路径操作方法之1: os.listdir(path) //path为目录功能相当于在p...
    99+
    2023-06-17
  • 一文搞懂Python的文件路径操作
    如果你要在代码里读取一个文件,那么你首先要知道这个文件的路径。如果只有一个文件,那么很简单,直接复制这个文件所在的文件夹路径及其文件名即可。而在很多情况下,我们会处理大量的文件,这些文件一般都会按一定...
    99+
    2023-08-31
    python linux windows
  • 用Python和bash结合,轻松操作数组和路径(path)!
    在日常的编程工作中,我们经常需要使用数组和路径(path)来存储和操作数据。Python和bash是两个非常流行的编程语言,它们都提供了丰富的函数和工具来处理数组和路径。本文将介绍如何使用Python和bash结合,轻松操作数组和路径。 ...
    99+
    2023-10-07
    bash 数组 path
  • python文件与路径操作神器 pathlib
    pathlib中封装了PurePath和Path类,前者用于处理路径风格的字符串;后者是前者的子类,可直接处理路径。 PurePath最甜的功能是重载了运算符,从而可以实现类似下面这...
    99+
    2024-04-02
  • python文件读写操作小结
    目录读文件写文件关于open()的mode参数:file_obj.seek(offset,whence=0)字符编码读文件 打开一个文件用open()方法(open()返回一个文件对...
    99+
    2024-04-02
  • python 文件操作api(文件操作函数)
    python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。 得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd() 返回指定目录下的所有文件和目录名:...
    99+
    2022-06-04
    操作 文件 函数
  • Python函数和文件操作详情
    目录前言一、函数二、自定义函数1.创建函数2.调用函数3.函数默认值4.收集函数(可变函数)5.全局与局部6.匿名函数lambda7.内嵌函数三、常用内置函数1.max和min2.a...
    99+
    2024-04-02
  • python文件操作以及循环小结
    Python中的文件使用建议使用 with open(filename, "r") as f: 的形式进行文件操作,如果忘记关闭文件指针的话,他会帮你自己关闭文件, 如果使用原来的方式 f = open(filename, "w") 打开...
    99+
    2023-01-30
    小结 操作 文件
  • 如何在PHP函数中使用Path接口来操作文件路径?
    PHP是一种非常流行的服务器端编程语言,其强大的功能和易于学习的特点使得它成为了很多Web开发者的首选。在PHP中,文件操作是一个非常重要的功能,而Path接口则是PHP文件操作的核心。 Path接口是PHP的一个文件路径操作接口,它提供了...
    99+
    2023-07-08
    函数 path 接口
  • Python 中如何使用接口来操作文件路径?
    在 Python 的开发中,文件操作是必不可少的一部分。而在文件操作中,对文件路径的处理也是非常重要的一环。Python 中提供了许多接口来操作文件路径,这些接口可以让我们更加方便地处理文件路径,避免了手动处理路径所带来的错误。 一、os...
    99+
    2023-10-09
    接口 path 日志
  • Python中查看文件名和文件路径
    查看文件名和文件路径 >>> import os >>> url = 'http://images.cnitblog.com/i/311516/201403/0200...
    99+
    2022-06-04
    文件名 路径 文件
  • PHP常用的文件操作函数总结
    目录1 :basename()2 :copy()3 :dirname()4 :disk_free_space()5 :disk_total_space()6 :f...
    99+
    2022-11-13
    PHP文件操作函数 PHP文件操作
  • C++ 函数库中有哪些文件和路径类?
    文件和路径类是 c++++ 标准库中用于操作文件和路径的类。文件类包括 ifstream(读取文本文件)、ofstream(写入文本文件)、fstream(读写文本文件)、ofstrea...
    99+
    2024-04-19
    c++ 文件和路径类 标准库
  • 从路径分隔符到文件名处理:PHP、Unix和Bash的路径操作指南
    路径处理是编程中经常需要处理的一项任务,它涉及到文件系统中文件和目录的访问和操作。在本文中,我们将介绍PHP、Unix和Bash中的路径操作指南,包括路径分隔符、路径格式化、文件名处理等。 一、路径分隔符 路径分隔符是用于分隔不同路径段的...
    99+
    2023-10-14
    unix bash path
  • Java SE 7文件操作中的路径操作是怎样的
    Java SE 7文件操作中的路径操作是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java SE 7中对Path类的操作主要有两种:对路径的操作和对文...
    99+
    2023-06-17
  • 第3章 python 函数与文件操作
    函数    定义        1.基本结构        def func_name():            func_code        2.三种形式 无参:应用场景仅仅只是执行一些操作,比如与用户交互,打印 有参:需要根据外部...
    99+
    2023-01-31
    函数 操作 文件
  • 如何使用PHP函数来操作路径接口?
    当我们在进行Web开发时,经常需要操作文件路径。PHP中提供了一些非常有用的函数来帮助我们操作路径接口。在本篇文章中,我们将学习如何使用PHP函数来操作路径接口,以帮助我们更好地管理文件和目录。 realpath()函数 realpat...
    99+
    2023-07-08
    函数 path 接口
  • Python 文件操作方法总结
    目录文件处理流程基本操作打开文件 读文件内容关闭文件写文件文件处理流程 1.打开文件,得到文件句柄并赋值给一个变量2.通过句柄对文件进行操作3.关闭文件  r模式...
    99+
    2024-04-02
  • Python 文件操作 open 和
      python  读写文件磁盘上的文件,是通过调用操作系统系统的接口来实现的,通过操作系统提供的接口,来读取或者写入文件,Python 读取文件的步骤如下# 使用 open 1、打开文件f1 = open('t1.txt', 'r',en...
    99+
    2023-01-31
    操作 文件 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作