杨钦元 博客

python 操作文件和目录

>>>os.path.abspath('.')
'/www'
>>>os.path.join('/www','testdir')
/www/testdir
>>>os.path.mkdir('/www/testdir')
>>>os.path.rmdir('/www/testdir')
>>>os.path.split('/www/testdir/file.txt')
('www/testdir','file.txt')
>>>os.path.splitext('/www/testdir/file.txt') # 获取文件扩展名
('/www/testdir/file','.txt')
>>>[x for x in os.listdir('.') if os.path.isdir(x)]#列出当前目录下的所有目录
['','',...]
>>>[x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py'] # 列出所有 .py 文件
['','',...]

练习

编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件, 并打印出相对/绝对路径。

# 分解任务
# 1 列出当前目录的所有目录 [x for x in os.listdir('.') if os.path.isdir(x)]
# 2 列出一个目录的所有子目录  [x[0] for x in os.walk(directory)]
# 3 查找文件名包含指定字符串的文件
#    3.1 得到文件名 os.path.splitext(i)[0]  'file'
#    3.2 匹配 if "f" in 'file'
# 4 打印文件的绝对路径

keyname = input("what kind of file you find:\n")
filepath = input("input absolute path")
for i in [x[-1] for x in os.walk(filepath)]:
    # print(i)
    # 得到所有文件列表
    for y in i:
        if keyname in y:
            print(y)