Python的OS 文件/目录方法

版权声明:未经博主允许不得转载。 https://blog.csdn.net/qq_43774897/article/details/88992419

1. os.chdir() 方法

os.chdir() 方法用于改变当前工作目录到指定的路径。chdir()方法语法格式:

os.chdir(path)   #path -- 要切换到的新路径。

2. os.getcwd() 方法

os.getcwd() 方法用于返回当前工作目录。getcwd()方法语法格式:

os.getcwd()

3. os.listdir() 方法

os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 ‘.’ 和’…’ 即使它在文件夹中,也就是不会返回隐藏文件。listdir()方法语法格式:

os.listdir(path)    # path -- 需要列出的目录路径

在一个目录下面只有文件,没有文件夹,这个时候可以使用os.listdir()
在我们的桌面上有一个file目录(文件夹),里面有三个文件

file(dir)|
  ---|test1.txt
  ---|test2.txt
  ---|test3.txt

用下面的程序获得文件的绝对路径:

import os
path = r'C:\Users\Administrator\Desktop\file'

for filename in os.listdir(path):
 	print(os.path.join(path,filename))
 	
C:\Users\Administrator\Desktop\file\test1.txt
C:\Users\Administrator\Desktop\file\test2.txt
C:\Users\Administrator\Desktop\file\test3.txt

使用os.listdir()读取到一个目录下面所有的文件名,然后使用os.path.join把目录的路径和文件名结合起来,就得到了文件的绝路路径。

4. os.walk() 方法
一个目录下面既有目录(目录下面还可能有目录和文件)也有文件,如何读取里面所有文件呢?这里要使用os.walk()。
os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。它是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。

基本语法:
os.walk(top, topdown)

参数:
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)
      root : 所指的是当前正在遍历的这个文件夹的本身的地址
      dirs : 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
      files : 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
topdown --  可选,为 True,则优先遍历 top 目录,否则优先遍历 top 的子目录(默认为开启)。
如果 topdown 参数为 True,walk 会遍历top文件夹,与top 文件夹中每一个子目录

我们在桌面上面建立一个file目录,里面的组织结构如下:

扫描二维码关注公众号,回复: 5894063 查看本文章
file(dir):
  --|file1(dir):
   ---|file1_test1.txt
   ---|file1_test2.txt
   ---|file1_test3.csv
  --|file2(dir)
   ---|file2_test1.txt
  --|file_test1.txt
  --|file_test2.txt
  --|file_test3.csv

如何获得这个路径下面所有的文件路径

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):     
     for filename in filenames:          
      	   print(os.path.join(dirpath,filename)) 
 
C:\Users\Administrator\Desktop\file\file_test1.txt
C:\Users\Administrator\Desktop\file\file_test2 .txt
C:\Users\Administrator\Desktop\file\file_test3 .csv
C:\Users\Administrator\Desktop\file\file1\file1_test1.txt
C:\Users\Administrator\Desktop\file\file1\file1_test2.txt
C:\Users\Administrator\Desktop\file\file1\file1_test3.csv
C:\Users\Administrator\Desktop\file\file2\file2_test1.txt

当然你要也可以获取指定名称的,指定字符开头或结尾的文件。

指定名称:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):     
     for filename in filenames:
          if filename == 'file_test3 .csv':          # 指定名称
           	   print(os.path.join(dirpath,filename)) 

字符开头或结尾的文件:

import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):     
     for filename in filenames:
          if filename.endswith('.txt'):            # endswith  指定结尾
           	   print(os.path.join(dirpath,filename)) 
           	   
import os
path = r'C:\Users\Administrator\Desktop\file'
for dirpath,dirnames,filenames in os.walk(path):     
     for filename in filenames:
          if filename.startswith('file1'):          # startswith   指定结尾
           	   print(os.path.join(dirpath,filename))  

猜你喜欢

转载自blog.csdn.net/qq_43774897/article/details/88992419
今日推荐