当前位置:首页 » 编程语言 » abspathpython

abspathpython

发布时间: 2023-01-05 22:23:59

python 常用的系统函数有哪些

1.常用内置函数:(不用import就可以直接使用)
help(obj) 在线帮助, obj可是任何类型
callable(obj) 查看一个obj是不是可以像函数一样调用
repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
eval_r(str) 表示合法的python表达式,返回这个表达式
dir(obj) 查看obj的name space中可见的name
hasattr(obj,name) 查看一个obj的name space中是否有name
getattr(obj,name) 得到一个obj的name space中的一个name
setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object
delattr(obj,name) 从obj的name space中删除一个name
vars(obj) 返回一个object的name space。用dictionary表示
locals() 返回一个局部name space,用dictionary表示
globals() 返回一个全局name space,用dictionary表示
type(obj) 查看一个obj的类型
isinstance(obj,cls) 查看obj是不是cls的instance
issubclass(subcls,supcls) 查看subcls是不是supcls的子类

类型转换函数
chr(i) 把一个ASCII数值,变成字符
ord(i) 把一个字符或者unicode字符,变成ASCII数值
oct(x) 把整数x变成八进制表示的字符串
hex(x) 把整数x变成十六进制表示的字符串
str(obj) 得到obj的字符串描述
list(seq) 把一个sequence转换成一个list
tuple(seq) 把一个sequence转换成一个tuple
dict(),dict(list) 转换成一个dictionary
int(x) 转换成一个integer
long(x) 转换成一个long interger
float(x) 转换成一个浮点数
complex(x) 转换成复数
max(...) 求最大值
min(...) 求最小值
用于执行程序的内置函数
complie 如果一段代码经常要使用,那么先编译,再运行会更快。

2.和操作系统相关的调用
系统相关的信息模块 import sys
sys.argv是一个list,包含所有的命令行参数.
sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的文件对象.
sys.stdin.readline() 从标准输入读一行 sys.stdout.write("a") 屏幕输出a
sys.exit(exit_code) 退出程序
sys.moles 是一个dictionary,表示系统中所有可用的mole
sys.platform 得到运行的操作系统环境
sys.path 是一个list,指明所有查找mole,package的路径.

操作系统相关的调用和操作 import os
os.environ 一个dictionary 包含环境变量的映射关系 os.environ["HOME"] 可以得到环境变量HOME的值
os.chdir(dir) 改变当前目录 os.chdir('d:\\outlook') 注意windows下用到转义
os.getcwd() 得到当前目录
os.getegid() 得到有效组id os.getgid() 得到组id
os.getuid() 得到用户id os.geteuid() 得到有效用户id
os.setegid os.setegid() os.seteuid() os.setuid()
os.getgruops() 得到用户组名称列表
os.getlogin() 得到用户登录名称
os.getenv 得到环境变量
os.putenv 设置环境变量
os.umask 设置umask
os.system(cmd) 利用系统调用,运行cmd命令
操作举例:
os.mkdir('/tmp/xx') os.system("echo 'hello' > /tmp/xx/a.txt") os.listdir('/tmp/xx')
os.rename('/tmp/xx/a.txt','/tmp/xx/b.txt') os.remove('/tmp/xx/b.txt') os.rmdir('/tmp/xx')
用python编写一个简单的shell
#!/usr/bin/python
import os, sys
cmd = sys.stdin.readline()
while cmd:
os.system(cmd)
cmd = sys.stdin.readline()

用os.path编写平台无关的程序
os.path.abspath("1.txt") == os.path.join(os.getcwd(), "1.txt")
os.path.split(os.getcwd()) 用于分开一个目录名称中的目录部分和文件名称部分。
os.path.join(os.getcwd(), os.pardir, 'a', 'a.doc') 全成路径名称.
os.pardir 表示当前平台下上一级目录的字符 ..
os.path.getctime("/root/1.txt") 返回1.txt的ctime(创建时间)时间戳
os.path.exists(os.getcwd()) 判断文件是否存在
os.path.expanser('~/dir') 把~扩展成用户根目录
os.path.expandvars('$PATH') 扩展环境变量PATH
os.path.isfile(os.getcwd()) 判断是否是文件名,1是0否
os.path.isdir('c:\Python26\temp') 判断是否是目录,1是0否
os.path.islink('/home/huaying/111.sql') 是否是符号连接 windows下不可用
os.path.ismout(os.getcwd()) 是否是文件系统安装点 windows下不可用
os.path.samefile(os.getcwd(), '/home/huaying') 看看两个文件名是不是指的是同一个文件
os.path.walk('/home/huaying', test_fun, "a.c")
遍历/home/huaying下所有子目录包括本目录,对于每个目录都会调用函数test_fun.
例:在某个目录中,和他所有的子目录中查找名称是a.c的文件或目录。
def test_fun(filename, dirname, names): //filename即是walk中的a.c dirname是访问的目录名称
if filename in names: //names是一个list,包含dirname目录下的所有内容
print os.path.join(dirname, filename)
os.path.walk('/home/huaying', test_fun, "a.c")

文件操作
打开文件
f = open("filename", "r") r只读 w写 rw读写 rb读二进制 wb写二进制 w+写追加
读写文件
f.write("a") f.write(str) 写一字符串 f.writeline() f.readlines() 与下read类同
f.read() 全读出来 f.read(size) 表示从文件中读取size个字符
f.readline() 读一行,到文件结尾,返回空串. f.readlines() 读取全部,返回一个list. list每个元素表示一行,包含"\n"\
f.tell() 返回当前文件读取位置
f.seek(off, where) 定位文件读写位置. off表示偏移量,正数向文件尾移动,负数表示向开头移动。
where为0表示从开始算起,1表示从当前位置算,2表示从结尾算.
f.flush() 刷新缓存
关闭文件
f.close()

regular expression 正则表达式 import re
简单的regexp
p = re.compile("abc") if p.match("abc") : print "match"
上例中首先生成一个pattern(模式),如果和某个字符串匹配,就返回一个match object
除某些特殊字符metacharacter元字符,大多数字符都和自身匹配。
这些特殊字符是 。^ $ * + ? { [ ] \ | ( )
字符集合(用[]表示)
列出字符,如[abc]表示匹配a或b或c,大多数metacharacter在[]中只表示和本身匹配。例:
a = ".^$*+?{\\|()" 大多数metachar在[]中都和本身匹配,但"^[]\"不同
p = re.compile("["+a+"]")
for i in a:
if p.match(i):
print "[%s] is match" %i
else:
print "[%s] is not match" %i
在[]中包含[]本身,表示"["或者"]"匹配.用

表示.
^出现在[]的开头,表示取反.[^abc]表示除了a,b,c之外的所有字符。^没有出现在开头,即于身身匹配。
-可表示范围.[a-zA-Z]匹配任何一个英文字母。[0-9]匹配任何数字。
\在[]中的妙用。
\d [0-9]
\D [^0-9]
\s [ \t\n\r\f\v]
\S [^ \t\n\r\f\v]
\w [a-zA-Z0-9_]
\W [^a-zA-Z0-9_]
\t 表示和tab匹配, 其他的都和字符串的表示法一致
\x20 表示和十六进制ascii 0x20匹配
有了\,可以在[]中表示任何字符。注:单独的一个"."如果没有出现[]中,表示出了换行\n以外的匹配任何字符,类似[^\n].
regexp的重复
{m,n}表示出现m个以上(含m个),n个以下(含n个). 如ab{1,3}c和abc,abbc,abbbc匹配,不会与ac,abbbc匹配。
m是下界,n是上界。m省略表下界是0,n省略,表上界无限大。
*表示{,} +表示{1,} ?表示{0,1}
最大匹配和最小匹配 python都是最大匹配,如果要最小匹配,在*,+,?,{m,n}后面加一个?.
match object的end可以得到匹配的最后一个字符的位置。
re.compile("a*").match('aaaa').end() 4 最大匹配
re.compile("a*?").match('aaaa').end() 0 最小匹配
使用原始字符串
字符串表示方法中用\\表示字符\.大量使用影响可读性。
解决方法:在字符串前面加一个r表示raw格式。
a = r"\a" print a 结果是\a
a = r"\"a" print a 结果是\"a
使用re模块
先用re.compile得到一个RegexObject 表示一个regexp
后用pattern的match,search的方法,得到MatchObject
再用match object得到匹配的位置,匹配的字符串等信息
RegxObject常用函数:
>>> re.compile("a").match("abab") 如果abab的开头和re.compile("a")匹配,得到MatchObject
<_sre.SRE_Match object at 0x81d43c8>
>>> print re.compile("a").match("bbab")
None 注:从str的开头开始匹配
>>> re.compile("a").search("abab") 在abab中搜索第一个和re_obj匹配的部分
<_sre.SRE_Match object at 0x81d43c8>
>>> print re.compile("a").search("bbab")
<_sre.SRE_Match object at 0x8184e18> 和match()不同,不必从开头匹配
re_obj.findall(str) 返回str中搜索所有和re_obj匹配的部分.
返回一个tuple,其中元素是匹配的字符串.
MatchObject的常用函数
m.start() 返回起始位置,m.end()返回结束位置(不包含该位置的字符).
m.span() 返回一个tuple表示(m.start(), m.end())
m.pos(), m.endpos(), m.re(), m.string()
m.re().search(m.string(), m.pos(), m.endpos()) 会得到m本身
m.finditer()可以返回一个iterator,用来遍历所有找到的MatchObject.
for m in re.compile("[ab]").finditer("tatbxaxb"):
print m.span()
高级regexp
| 表示联合多个regexp. A B两个regexp,A|B表示和A匹配或者跟B匹配.
^ 表示只匹配一行的开始行首,^只有在开头才有此特殊意义。
$ 表示只匹配一行的结尾
\A 表示只匹配第一行字符串的开头 ^匹配每一行的行首
\Z 表示只匹配行一行字符串的结尾 $匹配第一行的行尾
\b 只匹配词的边界 例:\binfo\b 只会匹配"info" 不会匹配information
\B 表示匹配非单词边界
示例如下:
>>> print re.compile(r"\binfo\b").match("info ") #使用raw格式 \b表示单词边界
<_sre.SRE_Match object at 0x817aa98>
>>> print re.compile("\binfo\b").match("info ") #没有使用raw \b表示退格符号
None
>>> print re.compile("\binfo\b").match("\binfo\b ")
<_sre.SRE_Match object at 0x8174948>
分组(Group) 示例:re.compile("(a(b)c)d").match("abcd").groups() ('abc', 'b')
#!/usr/local/bin/python
import re
x = """
name: Charles
Address: BUPT

name: Ann
Address: BUPT
"""
#p = re.compile(r"^name:(.*)\n^Address:(.*)\n", re.M)
p = re.compile(r"^name:(?P.*)\n^Address:(?P.*)\n", re.M)
for m in p.finditer(x):
print m.span()
print "here is your friends list"
print "%s, %s"%m.groups()
Compile Flag
用re.compile得到RegxObject时,可以有一些flag用来调整RegxObject的详细特征.
DOTALL, S 让.匹配任意字符,包括换行符\n
IGNORECASE, I 忽略大小写
LOCALES, L 让\w \W \b \B和当前的locale一致
MULTILINE, M 多行模式,只影响^和$(参见上例)
VERBOSE, X verbose模式

② 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怎样得到资源文件的绝对路径

路径有两种,相对路径和绝对路径。 对于Unix-Like系统来说,绝对路径就是以/开头的路径。 相对路径就是不以/开头的路径。
其实,操作系统中实际只有一种路径,那就是绝对路径。 相对路径,只是程序自己帮我们修改为绝对路径了。
操作系统的程序运行器利用环境变量,为我们把相对路径生成为绝对路径。getcwd()函数用于得到当前进程的当前工作路径。也就是相对路径的起始点。
在Python中,可以使用os.chdir函数切换当前工作路径。

当前工作路径,是程序执行时所在的路径。 我们在哪个目录下执行程序,当前路径就是哪一个目录。

我们常常需要在python中执行一些源码目录下的文件。如,我们可能需要用eval动态执行一个python源文件。或者一些配置文件到目标系统的路径下。此时,我们无法知道这些文件的绝对路径,因为我们不能预知用户会把我们的程序安装到哪一个目录下。
我们也不能依赖于当前工作路径。因为用户很可能不在我们的源码目录下执行我们的程序。

那么,此时我们如何得到源码目录下文件的绝对路径呢?
我是这样做的:
ABSPATH=None

if __name__ == '__main__':

ABSPATH=os.path.abspath(sys.argv[0])
ABSPATH=os.path.dirname(ABSPATH)+"/"

print ABSPATH

④ python 文本文件中查找指定的字符串

编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。
import os
class SearchFile(object):

def __init__(self,path='.'):
self._path=path
self.abspath=os.path.abspath(self._path) # 默认当前目录

def findfile(self,keyword,root):
filelist=[]
for root,dirs,files in os.walk(root):
for name in files:
fitfile=filelist.append(os.path.join(root, name))
#print(fitfile)
print(os.path.join(root, name))
#print(filelist)
print('...........................................')
for i in filelist:
if os.path.isfile(i):
#print(i)
if keyword in os.path.split(i)[1]:
print('yes!',i) # 绝对路径
#else:
#print('......no keyword!')

def __call__(self):
while True:
workpath=input('Do you want to work under the current folder? Y/N:')
if(workpath == ''):
break
if workpath=='y' or workpath=='Y':
root=self.abspath # 把当前工作目录作为工作目录
print('当前工作目录:',root)
dirlist=os.listdir() # 列出工作目录下的文件和目录
print(dirlist)
else:
root=input('please enter the working directory:')
print('当前工作目录:',root)
keyword=input('the keyword you want to find:')
if(keyword==''):
break
self.findfile(keyword,root) # 查找带指定字符的文件

if __name__ == '__main__':
search = SearchFile()
search()

⑤ 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).

(5)abspathpython扩展阅读:

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有哪些模块

Python是一门非常高级的编程语言,内置了许多标准模块,比如:sys、os、datetime等。

os模块

os.getcwd() # 获取当前工作目录,即当前python脚本工作的目录路径

os.chdir("dirname") # 改变当前脚本工作目录;相当于shell下cd

os.curdir # 返回当前目录: ('.')

os.pardir # 获取当前目录的父目录字符串名:('..')

os.makedirs('dirname1/dirname2') # 可生成多层递归目录

os.removedirs('dirname1') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推

os.mkdir('dirname') # 生成单级目录;相当于shell中mkdir dirname

os.rmdir('dirname') # # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname

os.listdir('dirname') # 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印

os.remove() # 删除一个文件

os.rename("oldname","newname") # 重命名文件/目录

os.stat('path/filename') # 获取文件/目录信息

os.sep # 输出操作系统特定的路径分隔符,win下为"\",linux下为"/"

os.linesep # 输出当前平台使用的行终止符,win下为" ",Linux下为" "

os.pathsep # 输出用于分割文件路径的字符串 win下为;,Linux下为:

os.name # 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'

os.system("bash command") # 运行shell命令,直接显示

os.environ # 获取系统环境变量

os.path.abspath(path) # 返回path规范化的绝对路径

os.path.split(path) # 将path分割成目录和文件名二元组返回

os.path.dirname(path) # 返回path的目录。其实就是os.path.split(path)的第一个元素

os.path.basename(path) #
返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素

os.path.exists(path) # 如果path存在,返回True;如果path不存在,返回False

os.path.isabs(path) # 如果path是绝对路径,返回True

os.path.isfile(path) # 如果path是一个存在的文件,返回True。否则返回False

os.path.isdir(path) # 如果path是一个存在的目录,则返回True。否则返回False

os.path.join(path1[, path2[, ...]]) # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.getatime(path) # 返回path所指向的文件或者目录的最后访问时间

os.path.getmtime(path) # 返回path所指向的文件或者目录的最后修改时间

os.path.getsize(path) # 返回path的大小

sys模块

sys.argv # 命令行参数List,第一个元素是程序本身路径

sys.exit(n) # 退出程序,正常退出时exit(0)

sys.version # 获取Python解释程序的版本信息

sys.maxint # 最大的Int值

sys.path # 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值

sys.platform # 返回操作系统平台名称

datetime模块

datetime.today()返回一个表示当前本期日期时间的datetime对象

datetime.now([tz])返回指定时区日期时间的datetime对象,如果不指定tz参数则结果同上

datetime.utcnow()返回当前utc日期时间的datetime对象

datetime.fromtimestamp(timestamp[, tz])根据指定的时间戳创建一个datetime对象

datetime.utcfromtimestamp(timestamp)根据指定的时间戳创建一个datetime对象

datetime.strptime(date_str, format)将时间字符串转换为datetime对象

⑦ python 怎么查看当前路径

先要装载 os模块:
import os

print os.getcwd()

或者
print os.path.abspath(os.curdir)

print os.path.abspath('.')
就可以了。

( . 代表当前的路径,.. 代表当前路径的上一级路径。这在UNIX和Windows系统意义是类似的。
例如:
以Winodws系统为例:

当前路径是F:\Temp, 则 . 的绝对路径就是F:\Temp
.. 的绝对路径就是F:\

)

要获得上级目录的路径也很简单,print os.path.abspath('..')就可以了。
要改变当前路径,os.chdir(path) 就可以了 path里填要改变到的目录,例如os.chdir('D:\Program Files')
这样大部分的文件操作现在是相对于D:\Program Files 来了,例如fobj = open('Hello.txt'),实际会打开D:\Program Files\Hello.txt文件。

不要通过sys.argv[0]获得当前路径,那是不正确的。sys.argv[0] 是当前执行的Python脚本的文件名,不一定是当前的路径。

希望对你有所帮助。

⑧ python 如何获取某个文件的绝对地址

晕,假设你的文件名是filename
os.path.abspath(filename)得到的就是文件名的绝对地址

如果你相得到绝对目录可以这样子
os.path.abspath(os.path.dirname(filename))

⑨ 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

⑩ python 获取文件夹路径问题

#encoding:utf-8
importos
printos.path.abspath("test")

使用os.path.abspath方法可以输出文件夹的绝对路径。

参数里面要写相对路径,比如脚本和文件夹在同一路径,就直接写名字即可。如果文件夹在上一个目录,就写成"../test"。

其实从方法名也能看出来,是一个相对路径转绝对路径的方法。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:528
微博数据库设计 发布:2025-07-05 15:30:55 浏览:25
linux485 发布:2025-07-05 14:38:28 浏览:305
php用的软件 发布:2025-07-05 14:06:22 浏览:756
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:433
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:708
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:243
java的开发流程 发布:2025-07-05 12:45:11 浏览:688
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:285
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:835