python获取文件目录
使用路径对象glob()函数和rglob()函数,可以查看指定路径下的文件和子文件夹,两者的区别在于,glob()函数只进行一级查找,而rglob()函数会进行多级查找。
from pathlib import Path
p = Path('d:\\文件夹\\')
r = p.glob('*')
for i in r:
print(i) #显示glob()函数的结果
print('-' * 25) #这里是分割线
r = p.rglob('*')
for i in r:
print(i)#显示rglob()函数的结果
查看对应结果如下:
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夹
-------------------------
d:\11\11.txt
d:\11\r.mp3
d:\11\t.mp3
d:\11\tp1000
d:\11\文件夹
d:\11\文件夹\文档.txt
________________END______________
❷ python文件名获取文件路径
概述
使用os.path.abspath()函数来获取文件绝对路径
解析
文件目录结构如下:
os.path.abspath(path)返回path规范化的绝对路径(但这个路径不一定是真实的路径),如果path仅是一个文件名,使用该函数后返回的路径是当前工作目录路径连接改文件名后所组成的新的路径名。
>>> import os.path
>>> os.path.abspath("a.py")
'C:\Users\Administrator\a.py'
os.path.split(path)将path分割成目录和文件名二元组返回
>>> os.path.split("C:\Users\Administrator\a.py")
('C:\Users\Administrator', 'a.py')
os.path.dirname(path)返回path的目录,其实就是os.path.split(path)的第一个元素
>>> os.path.dirname("C:\Users\Administrator\a.py")
'C:\Users\Administrator'
os.path.basename(path)返回path最后的文件名。如果path以/或结尾,就会返回空值。即os.path.split(path)的第二个元素。
>>> os.path.basename("C:\Users\Administrator\a.py")
'a.py'
os.path.commonprefix(list)返回list中所有path共有的最长的路径,从左向右,相同字符。
os.path.exists(path)如果path存在,返回True;如果path不存在,返回False。
os.path.isabs(path)如果path是绝对路径,返回True。
os.path.normpath(path)规范path字符串形式(规范文件路径)
os.path.isfile(path)判断路径是否为文件,是返回True,否则返回False
os.path.isdir(path)如果path是一个存在的目录,返回True,否则返货False。
os.path.islink(path)是否是链接;但如果系统不支持链接,则返回False。
❸ python直接读txt(或者excel)里面的文件名,然后找到那个目录里,把他们复制出来到新的文件,求代码
1 安装xlrd模块
pipinstallxlrd
2 读取Excel
#-*-coding:utf-8-*-
importxlrd
importos,shutil
defopen_excel(file='file.xls'):
try:
data=xlrd.open_workbook(file)
returndata
exceptException,e:
printstr(e)
defmyfile(srcfile,dstfile):
ifnotos.path.isfile(srcfile):
print"%snotexist!"%(srcfile)
else:
fpath,fname=os.path.split(dstfile)#分离文件名和路径
ifnotos.path.exists(fpath):
os.makedirs(fpath)#创建路径
shutil.file(srcfile,dstfile)#复制文件
print"%s->%s"%(srcfile,dstfile)
dst='D:\temp\'
myfile(srcfile,dstfile)
file_paths=data
forpinfile_paths:
srcfile=p
dstfile=dst+p.splt('/')[-1]
myfile(srcfile,dstfile)
❹ python中怎样转到指定目录
例如使用IDLE编译python代码时,可以使用os.chdir转到指定目录
import os.
os.getcwd() #get current work direction.
os.chdir('E:\Python_File\Test') #change direction.
在这之后可以直接调用’E:Python_FileTest’目录下的函数。
或者用库调用:
import osimport shutil.
alllist=os.listdir(u"D:\notes\python\资料\")for i in alllist:
aa,bb=i.split(".") if 'python' in aa.lower():
oldname= u"D:\notes\python\资料\"+aa+"."+bb.
newname=u"d:\\newname"+aa+"."+bb.
shutil.file(oldname,newname).
(4)python获取文件目录扩展阅读:
Python中获得当前目录和上级目录:
获取当前文件的路径:
from os import path
d = path.dirname(__file__) #返回当前文件所在的目录 # __file__ 为当前文件, 若果在ide中运行此行会报错,可改为 #d = path.dirname('.')。
获得某个路径的父级目录:
parent_path = os.path.dirname(d) #获得d所在的目录,即d的父级目录 parent_path = os.path.dirname(parent_path) ##获得parent_path所在的目录即parent_path的父级目录。
获得规范的绝对路径:
abspath = path.abspath(d) #返回d所在目录规范的绝对路径。
❺ Python其实很简单 第十六章 目录管理
为实现“按名存取”,必须建立文件名与辅存空间中物理地址的对应关系,体现这种对应关系的数据结构称为文件目录。文件目录表目至少要包含文件名、文件的类型、文件的长度、访问权限、建立时间、访问时间和文件存储地址等内容。通过前面一章的介绍,我们已经知道在文件信息中已经包含了文件名、文件类型访问权限等信息,而存储地址的信息则包含在目录信息中。
16.1路径
路径通常用一个字符串来表示,可以按照路径信息定位到一个目录或文件。如:“C:UsersAdministratorPictures1.jpg”这个信息可以非常方便的找到这个图片文件,“C:UsersAdministratorPictures”这个信息可以帮助我们找到更多的图片文件。
这里所说的“路径”和上网时碰到的“地址”含义比较相似,互联网就相当于将个人电脑可以访问的范围扩大了,互联网中的地址也是对应某一个存储空间的路径,按照地址可以访问互联网上的信息,就如同按照路径可以找到计算机中的文件一样。
在Python中,可以导入 os模块 来进行目录操作。
1、获取当前工作目录getcwd()函数
例:
import os
print(os.getcwd())
运行结果:
C:
这个路径是当前Python IDLE所在的地址。
2、获取文件的绝对路径abspath()函数
abspath()函数是os模块的子模块path提供的一个函数。用法举例如下:
import os
print(os.path.abspath(r'test.txt'))
运行结果:
C: est.txt
16.2 目录操作类函数
1、判断目录是否存在exists()函数
exists()函数是os模块的子模块path中的函数。使用方法举例如下:
import os
print(os.path.exists(r'C:UsersAdministratorPictures1.jpeg'))
输出结果:
True
2、创建目录mkdir()函数和makedirs()函数
mkdir()函数和makedirs()函数都是由os模块提供的,下面举例说明用法和区别。
例1:
import os
path='d:test'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
如果目录d: est已存在,则不再创建;若不存在,则创建。
例2:
import os
path='d:testtest1test11'
if not os.path.exists(path):
os.makedirs(path)
print('该文件目录创建成功!')
虽然目录d: est已存在,但可以在其下继续创建子目录。上面的代码可以成功地创建d: est est1 est11目录。
mkdir()函数和makedirs()函数用法基本一样,不同之处在于mkdir()函数只能能创建一级目录。
3、删除目录函数rmdir()函数
rmdir()函数是由os模块提供的。
例如:通过上面的例子已经建立了d: est est1 est11目录,现在去删除子目录test11(此子目录为空目录),代码如下:
import os
os.rmdir('d:testtest1test11')
如果要删除的目录非空(其下还包含有文件或文件夹),则不能删除,并且出现Windows文件操作错误的提示(Python是调用操作系统命令完成文件和目录操作的)。譬如d: est目录下含有有子目录,则不能对其进行如下删除操作。
import os
os.rmdir('d:test')
此时,会出现如下错误提示:
Traceback (most recent call last):
File "C:/Users/zym/AppData/Local/Programs/Python/Python39/4.py", line 10, in
os.rmdir('d:test')
OSError: [WinError 145] 目录不是空的。: 'd:test'
4、删除非空目录函数rmtree()函数
rmtree()函数是由Python内置的标准模块shutil提供的,可以删除目录及目录下的文件和子目录。如删除d: est目录及其下的子目录和文件,可用如下代码:
import shutil
shutil.rmtree('d:test')
5、遍历目录walk()函数
walk()函数是由os模块提供的。
语法格式:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
其中,top是所要遍历的目录的地址;topdown为可选参数,为 True时自上而下遍历 目录,为False时自下而上遍历目录,默认值为True;onerror为可选参数,用于指定异常处理方式,默认为忽略;followlinks为可选参数,如果为 True,则会遍历目录下的快捷方式(linux 下是软连接 symbolic link )实际所指的目录(默认关闭),如果为 False,则优先遍历 top 的子目录。
该函数的返回值为一个三元组(root,dirs,files)。root 所指的是当前正在遍历的这个文件夹的本身的地址;dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录);files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)。
例:遍历d: est目录及其子目录下的所有子目录和文件:
d: est目录及其下的子目录和文件
import os
path='d:test'
tups=os.walk(path) # 函数walk()的返回值为三元组
for root,dirs,files in tups: # 遍历这个三元组
for name in dirs: #遍历存放目录值的元组
print('dir:',os.path.join(root,name))
for name in files: #遍历存放文件名值的元组
print('file:',os.path.join(root,name))
运行结果如下:
dir: d: est est1
dir: d: est est1 est11
dir: d: est est1新建文件夹
file: d: est est1新建文本文档.txt
file: d: est est1 est11新建文本文档.txt