Python - 文件夹中所有文件的平均长度函数

时间:2015-04-07 05:05:09

标签: python text directory traversal

我有一个找到平均字符串长度的函数。现在我正在尝试编写一个函数来遍历和触摸目录中的每个txt文件,并返回具有最高平均值的文件。我现在所拥有的东西似乎并没有正确地穿越。请帮忙。感谢。

from __future__ import print_function
import os

def mean_length(file path):
    length = 0.0
    line_num = 0
    with open(filepath) as f:
        for line in f:
            if line.strip():
                length += len(line.strip())
                line_num += 1
    return length/line_num

def highest_mean():
    max_mean = 0 
    max_name = ""
    filepath = open("Desktop/Textfiles/moby.txt")
    for root, dirs, files in os.walk("Desktop/Textfiles"):
        for filename in files:
            if filename.endswith('.txt'):
                filepath = os.path.join(root, filename)
                if mean_length(filepath) > max_mean:
                    max_name = filename
                    max_mean = mean_length(filepath)
            return max_name

1 个答案:

答案 0 :(得分:0)

我认为您需要浏览所有文件以获得具有最高平均值的文件,可能还有另外两个变量:

def mean_length(filepath):
    length = 0.0
    line_num = 0
    with open(filepath) as f:
        for line in f:
            if line.strip():
                length += len(line.strip())
                line_num += 1
    return length/line_num

def highest_mean():
    max_mean = 0 
    max_name = ""
    for root, dirs, files in os.walk("Desktop/Textfiles"):
        for filename in files:
            if filename.endswith('.txt'):
                filepath = os.path.join(root, filename)
                m_length = mean_length(filepath)
                if m_length > max_mean:
                    max_name = filename
                    max_mean = m_length
   return max_name