遍历某目录,读取该目录下文件内容

要求:遍历某目录下的文件夹里的所有文件,筛选出下载地址为“http://files.generalseven.com/seven.exe”的文件,统计下载次数。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os
import re

file_dir = "D:\Cat\filesnam"

num = 0
for filename in os.listdir(file_dir):
    each_file = os.path.join(file_dir, filename)
    with open(each_file, "r") as f:
        lines = f.readlines()
        for line in lines:
            result_download = re.search(r"http://files.fudaojun.com/fudaojunV1.exe", line)
            if result_download:
                num += 1
print num

一、首先,需要导入库。

》》》import os(文件夹相关操作需要使用os库)

》》》import re(筛选特定条件用正则表达式re来匹配比较方便)

二、相关API:

》》》python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。

得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()

返回指定目录下的所有文件和目录名:os.listdir()

函数用来删除一个文件:os.remove()

删除多个目录:os.removedirs(r“c:python”)

检验给出的路径是否是一个文件:os.path.isfile()

检验给出的路径是否是一个目录:os.path.isdir()

判断是否是绝对路径:os.path.isabs()

检验给出的路径是否真地存:os.path.exists()

返回一个路径的目录名和文件名:os.path.split()     eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt') 

分离扩展名:os.path.splitext()

获取路径名:os.path.dirname()

获取文件名:os.path.basename()

运行shell命令: os.system()

读取和设置环境变量:os.getenv() 与os.putenv()

给出当前平台使用的行终止符:os.linesep    Windows使用' ',Linux使用' '而Mac使用' '

指示你正在使用的平台:os.name       对于Windows,它是'nt',而对于Linux/Unix用户,它是'posix'

重命名:os.rename(old, new)

创建多级目录:os.makedirs(r“c:python est”)

创建单个目录:os.mkdir(“test”)

获取文件属性:os.stat(file)

修改文件权限与时间戳:os.chmod(file)

终止当前进程:os.exit()

获取文件大小:os.path.getsize(filename) 

目录操作:
os.mkdir("file")                   创建目录
复制文件:
shutil.copyfile("oldfile","newfile")       oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile")            oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree("olddir","newdir")        olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename("oldname","newname")       文件或目录都是使用这条命令
移动文件(目录)
shutil.move("oldpos","newpos")   
删除文件
os.remove("file")
删除目录
os.rmdir("dir")只能删除空目录
shutil.rmtree("dir")    空目录、有内容的目录都可以删
转换目录
os.chdir("path")   换路径

》》》》》》

原文地址:https://www.cnblogs.com/general-seven/p/6143954.html