zhangqq02

林无静树,川无停留

文件搜索

  • 自己的代码文件名称不能跟模块名称相同(否则import该模块时导入的是同名的文件),也不能放在同一路径下
  • 关于路径中的“/”和反斜杠“\”
    • Win中用\来分隔文件夹
    • \在Python中还用于转义,因此就变成了\\
    • Mac和Linus用/
#输出os的路径
import os
print(os.getcwd())

如果程序在不同的系统中运行,则可以:

import os
print(os.path.join('MyProjects','AI'))
  • 绝对路径和相对路径
    • 相对路径,如:./file

输出os文件夹下的文件夹和文件

import os
print(os.listdir())

按行输出

for item in os.listdir():
    print(item)

判断是文件夹还是文件

for item in os.listdir():
    print(item, os.path.isdir(item))

for file in os.scandir():
    print(file.name, file.path, file.is_dir())

作业

  1. 找出当前目录下所有非文件夹的文件
  2. 统计其中包含有“Python”单词的文件数,不区分大小写
  3. 输出文件数量
import os
summ = 0
file = []
for i in os.listdir():
    if os.path.isdir(i) == False:
        print(i)
        file.append(i)
        if 'python' in i.lower():
            summ +=1
print(summ)
print(len(file))

#用累加和求列表长度两种方法来计数

搜索文件

import os
for dirpath, dirnames, filenames in os.walk('./'):
    print(f'{dirpath}:')
    print(filenames)

# 输出当前文件夹下的所有文件(包括子文件夹)


# 匹配文件类型有几种方法:用字符串匹配, glob模块,fnmatch匹配
    print('abc.txt'.startswith('ab')) == True
    print('abc.txt'.endswith('.txt')) == True

    import glob
    print(glob.glob('*.py'))
    # 不包含子文件夹

    # 把更深层的文件找出
    import glob
    print(glob.glob('**/*.py', recursive=True))
    # **表示任意层文件夹
    # recursive=True会不断进入文件夹
    
    import fnmatch
    print(fnmatch.fnmatch('lesson1.py', 'le*1.py') == True
    print(fnmatch.fnmatch('lesson1.py', 'le*[1-9].py') == True

# 匹配模式:*-匹配所有,?-匹配任意单个字符,[sep]-匹配sep中的任意字符,[!sep]-匹配任何不在sep中的字符

返回文件信息

import os
for file in os.scandir():
    print(file.name, file.stat().st_size / 1024)


# st_size:文件大小(单位:byes),除以1024即为KB
# s_atime:文件最近访问时间
# st_mtime:文件最近创建时间
# st_ctime:Windows下表示创建时间
# st_birthtime:只在Mac和Linux下可用,表示创建时间

# 转换时间戳
import time
print(tme.ctime(156776448))

# Fri Sep 6 18:07:08 2019

import datetime
that_time = datetime.datetime.fromtimestamp(156776448)
print(that_time)
print(that_time.hour, that_time.minute, that_time.second)

# 2019-09-06 18:07:08
# 18 7 8

作业

  1. 找出文件夹下(包括子文件夹)的所有大于100MB的.zip文件
  2. 筛选以上文件,早于2019年创建的
  3. 输出这些文件的路径
posted @ 2020-05-21 21:42  zhangqq02  阅读(108)  评论(0编辑  收藏  举报