Python获取py文件目录及其应用


本文将从多个方面介绍Python获取py文件目录及其应用,包括获取py文件所在目录和父目录、获取某个路径下所有py文件、查找某个目录下特定文件名的py文件、以及将当前目录及其子目录下所有py文件的绝对路径写入文本文件。

一、获取py文件所在目录和父目录

import os

# 获取当前py文件所在目录
dir_path = os.getcwd()

# 获取当前py文件所在父目录
parent_path = os.path.dirname(dir_path)

print('当前py文件所在目录:', dir_path)
print('当前py文件所在父目录:', parent_path)

代码解析:

使用os模块中的getcwd()函数获取当前py文件所在目录,使用os.path模块中的dirname()函数获取当前py文件所在父目录。

二、获取某个路径下所有py文件

import os

def get_all_py_files(path):
    py_files = []
    for root, dirs, files in os.walk(path):
        for f in files:
            if f.endswith('.py'):
                py_files.append(os.path.join(root, f))
    return py_files

# 获取当前py文件所在目录下所有py文件
all_py_files = get_all_py_files(os.getcwd())

print('当前py文件所在目录下所有py文件:', all_py_files)

代码解析:

使用os模块中的walk()函数遍历某个路径下的所有文件和目录,使用endswith()方法判断文件名是否以'.py'结尾,如果是就将文件路径添加到py_files列表中。

三、查找某个目录下特定文件名的py文件

import os

def search_py_files(path, name):
    py_files = []
    for root, dirs, files in os.walk(path):
        for f in files:
            if f == name+'.py':
                py_files.append(os.path.join(root, f))
    return py_files

# 查找当前py文件所在目录下名为'sample'的py文件
py_files = search_py_files(os.getcwd(), 'sample')

print('当前py文件所在目录下名为sample的py文件:', py_files)

代码解析:

同样使用os模块中的walk()函数遍历某个路径下的所有文件和目录,使用'=='判断文件名是否为目标文件名+'.py',如果是就将文件路径添加到py_files列表中。

四、将当前目录及其子目录下所有py文件的绝对路径写入文本文件

import os

def write_py_files_to_file(path):
    py_files = []
    for root, dirs, files in os.walk(path):
        for f in files:
            if f.endswith('.py'):
                py_files.append(os.path.join(root, f))
    
    with open('py_files.txt', 'w') as f:
        for py_file in py_files:
            f.write(py_file+'\n')

# 将当前py文件所在目录及其子目录下所有py文件的绝对路径写入文本文件
write_py_files_to_file(os.getcwd())

代码解析:

同样使用os模块中的walk()函数遍历某个路径下的所有文件和目录,使用endswith()方法判断文件名是否以'.py'结尾,如果是就将文件路径添加到py_files列表中。

使用with关键字打开文件,指定文件名为'py_files.txt',指定打开模式为'w'(写入模式),循环遍历py_files列表,使用write()方法将每个py文件路径加上换行符写入文件。

五、小结

本文从四个方面介绍了Python获取py文件目录的方法及应用,覆盖了获取py文件所在目录和父目录、获取某个路径下所有py文件、查找某个目录下特定文件名的py文件、以及将当前目录及其子目录下所有py文件的绝对路径写入文本文件。

评论关闭