python的os模块常用方法的理解和实践,如os.getcwd() os.listdir(path) os.path.join(path1, path2) 等

        在接触到和python相关的代码时,我发现通常会在头文件import os,然后在程序中利用os来调用一些方法,从而实现对文件或路径的操作。在这里总结一下平时遇到的一些os模块下的方法,并且通过一个小案例来把经常用的os模块下的方法联系起来,以便学以致用。

        用到的主要有以下这些:

os.getcwd()               #获得你当前.py文件所在的目录,也就是你当前的.py文件所在的位置

os.listdir(path)              #path为自定义的目录路径,通过该语句会返回一个字符串列表,该列表中的元素为目录路径path下的文件的名字或者是目录路径path下的目录的名字,因为该路径下可能嵌套的又是另外一个目录。

os.path.join(path1, path2)    #用于连接两个路径,连接之后的路径相当于path1/path2。

os.path.abspath(filenmae)    #filename是一个文件的名字,这个语句用于获取文件filename的绝对路径,绝对路径就是有头有尾,这个路径是唯一的。

os.path.isdir(path),os.path.isfile(path),os.path.exists(path)     #path是一个路径,可以对应一个具体的文件,也可以对应一个目录,这三个语句的意思分别是判断当前path是不是一个目录,判断当前path是不是一个文件,判断当前path是否存在。 

对于上面的这几个函数,我们用代码来测试以下,注释说明我都写到代码里了:

import os                                           
# 先用os.getcwd 获得我当前文件所处的路径                          
print('os.getcwd()==', os.getcwd())                 
#  os.getcwd()== /home/liubs/ottertune/test   这是打印输出
                                                    
# 再用os.listdir 获得当前文件所在目录下的所有文件,也就是同级别的所有文件,以字符串列表的形
# 注意,我当前文件所在目录下不止一个文件,还有其他的文件。                      
path1 = '/home/liubs/ottertune/test'                
print('os.listdir(path=path1)==', os.listdir(path=pa
# os.listdir(path=path1)== ['test01_changeconfig.py'
# operate_system_os.py是我现在运行的文件。                    
                                                    
                                                    
# os.path.join用于将两个路径进行相加,并且在两个字符串之间加上‘/’           
path2 = os.path.join(path1, os.listdir(path1)[1])   
print('os.path.join==', path2)                      
# path1是我定义的一个路径,然后获得该路径下的一个文件名,将其进行连接              
# 输出结果如下:os.path.join== /home/liubs/ottertune/test/t
                                                    
                                                    
# os.path.abspath获取文件的绝对路径,包括文件名                    
path3 = os.path.abspath('operate_system_os.py')     
print('os.path.abspath==', path3)                   
# os.path.abspath== /home/liubs/ottertune/test/opera
                                                    
# os.path.exists,os.path.isdir,os.path.isfile,分别为路径是
print(os.path.exists('test04_knobsselect.py'))      
# 这里打印出来的为:True     因为test04_knobsselect.py这个文件确实存在。

打印结果如下:

 小案例的实现:

问题:打印出当前目录中有test关键字的文件的绝对路径信息

# 1、获得当前所在的文件目录路径                                                                                      
path_str = os.getcwd()                                                                                 
# 打印出当前文件目录路径下所有的文件名或目录名                                                                               
path_list = os.listdir(path_str)                                                                       
# 在当前目录下新建一个目录,名字为 'this_test00'                                                                       
new_file_path = 'this_test00'                                                                          
# 定义关键字段,即要查找出的是所有带有关键字段的文件的路径                                                                         
sub_str = 'test'                                                                                       
# 查看新建的目录名是否已经在当前目录下的列表中存在                                                                             
# 如果不存在,则在当前目录下新建一个目录                                                                                  
if new_file_path not in path_list:                                                                     
    os.mkdir(new_file_path)                                                                            
# 遍历当前目录下的所有文件名和目录名                                                                                    
for i in path_list:                                                                                    
    # 如果是一个目录名,则删除该目录                                                                                  
    if os.path.isdir(i):                                                                               
        os.rmdir(i)                                                                                    
    # 如果是一个文件名,则查看文件名中是否包含关键字段,这里用到find方法,如果不包含则返回值为-1,不等于-1则是包含关键字段                                   
    if i.find(sub_str) != -1:                                                                          
        # 将当前文件所在的目录和包含关键字的文件名进行连接并进行打印。                                                               
        path = os.path.join(path_str, i)                                                               
        print(path)                                                                                    

结果如下:

猜你喜欢

转载自blog.csdn.net/BaoITcore/article/details/127850880
今日推荐