Python 路径操作
1)获取当前文件所在目录的路径:
import os
dir_path=os.path.dirname(__file__)
2)获取当前文件路径:
import os
# 当前文件路径
file_path=os.getcwd()
file_path=__file__
#当前文件的父路径
father_path=os.path.abspath(os.path.dirname(pwd)+os.path.sep+".")
#当前文件的前两级目录
grader_father=os.path.abspath(os.path.dirname(pwd)+os.path.sep+"..")
3)遍历文件夹中的所有文件:
import os
path = '待访问文件夹路径'
path_list = os.listdir(path)
path_list.remove('.DS_Store') # macos中的文件管理文件,默认隐藏,这里可以忽略
path_list.sort(key=lambda x:int(x.split('.')[0])) # 对文件名进行排序
print(path_list)
for filename in path_list:
f = open(os.path.join(path,filename),'rb')
3)遍历文件夹中的所有文件,并对这些文件夹的名称按照一定的规则排序:
# 例如在当前程序所在的文件夹内有一系列的文件夹,是以下划线加数字的形式命名的。现在需要获取当前文件夹中所有子文件夹的名称,并把这些文件夹的名称按照其中的数字来排序,方便后续的使用
# 例如这些文件夹的名称都是如下:_123.123,_234.2321,_213.214等形式
# 获取到这些文件夹的名称后,将其存放在列表中,并按照数字从大到小降序排列
import os
import functools
# 获取当前文件所在的路径
path=os.path.dirname(__file__)
# sorted函数的cmp函数
def cmp(a, b):
a = a[1:]
b = b[1:]
num_a = float(a)
num_b = float(b)
if num_a > num_b:
return -1
elif num_a < num_b:
return 1
else:
return 0
# 获取给定路径下的所有子文件夹的名称
# 并排序
def dirListGet(targetPath):
nameList = os.listdir(targetPath)
# 去掉nameList里面的非文件夹名称
dirNameList = []
for item in nameList:
if item[-3:] != ".py" and item[-4:] != ".txt" and item[-4:] != ".png":
dirNameList.append(item)
# 对dirNameList的元素进行排序
sortedDirNameList = sorted(dirNameList, key=functools.cmp_to_key(cmp))
return sortedDirNameList
dirList=dirListGet(path)
##