Python OS文件目录方法


os.listdir(path)

os.listdir()方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。这个列表以字母顺序。 它不包括 ‘.’ 和’..’ 即使它在文件夹中。

path–指定文件夹路径,path是字符串格式,也可以通过“相加”得来,os.listdir(data_folders + '/' + str(folder_name))

对如下图结构的文件夹,列出该文件夹包含的文件或文件夹名列表,可以用os.listdir()方法,它会返回一个list

1
2
3
4
5
>>> import os
>>> data_folders = "E://Python/data/notMNIST_large"
>>> folder_names = os.listdir(data_folders)
>>> print(folder_names)
['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']

os.path.join()

join是连接字符串的方法,遗憾的是,join()只能对一个变量进行拼接。如果需要对多个变量进行拼接就要用到os.path.join()方法了。

在Win10下用os.path.join()进行路径拼接会有一点麻烦,因为弄不明白拼接的符号为什么是双反斜杠“\\”,如此一来,拼接之后的路径名是不合法的,返回到Python就会蹦出“No such a directory”的错误,比如

1
2
3
4
5
>>> import os
>>> src = 'E://Python/data/notMNIST_small' #路径
>>> file_name = 'A' #文件名
>>> os.path.join(src, file_name)
'E://Python/data/notMNIST_small\\A' #显然这个路径的格式是错误的

在Win10下式支持单斜杠/的,那么用replace将双反斜杠\\\\替换为单斜杠/就可以解决路径错误的问题了

1
2
3
4
5
6
>>> import os
>>> src = 'E://Python/data/notMNIST_small'
>>> file_name = 'A'
>>> m = os.path.join(src, dst)
>>> m.replace('\\', '/')
'E://Python/data/notMNIST_small/A' #路径格式正确

** os.stat()**

os.stat() 方法用于在给定的路径上执行一个系统 stat 的调用,返回文件的一些系统信息,如大小、修改时间、上一次访问的时间等等,stat()方法语法格式如下:os.stat(path)

1
2
3
4
import os
stat_info = os.path('../As long as you love me.mp4')
print(stat_info.st_size) # 返回文件大小

更多参考:Python OS文件目录的方法

觉得还不错?帮我赞助点域名费吧:)