如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值?(用php实现)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值?(用php实现)相关的知识,希望对你有一定的参考价值。

参考技术A function file_read_all ($dir)

if (is_dir($dir))
if ($dh = opendir($dir))
$n=0;
while (($file = readdir($dh)) !== false)
if ( $file == '.' or $file =='..' or $file=='.svn')

continue;

echo md5_file($dir.$file);//计算每个文件md5值 echo '<br />';
if (is_dir ($dir.$file))

file_read_all ($dir.$file.'/');



closedir($dh);

参考技术B <?php
function getAllFileMd5($dir)
$hash = '';
$dir = new RecursiveDirectoryIterator($dir);
foreach(new RecursiveIteratorIterator($dir) as $file)
$hash .= md5_file($file);

return md5($hash);

?>
参考技术C function file_read_all ($dir)

if (is_dir($dir))
if ($dh = opendir($dir))
$n=0;
while (($file = readdir($dh)) !== false)
if ( $file == '.' or $file =='..' or $file=='.svn')

continue;

echo $dir.$file;
echo '<br />';
if (is_dir ($dir.$file))

file_read_all ($dir.$file.'/');



closedir($dh);



这是遍历文件夹下的所有文件追问

亲~加密呢?

追答

md5单向加密的,你可以制定加密规则的啊?之后判断就可以了?

追问

能给点code 么??

追答

//自定义加密函数
function code_md5($password,$pre_str='file',$next_str='cms')

return md5($pre_str.$password.$next_str);


这是实现一个md5加密的函数,你把每个文件夹传进去就可以了看到MD5加密后的值了,应该是32位

如何在 Python27 中遍历文件而不遇到 ValueError 并用空行完全遍历文件?

【中文标题】如何在 Python27 中遍历文件而不遇到 ValueError 并用空行完全遍历文件?【英文标题】:How to iterate through a file in Python27 without running into ValueError and completely iterating through file with empty lines? 【发布时间】:2019-08-04 12:55:44 【问题描述】:

我基本上和这个人有同样的问题:person also having issues iterating

根据我所做的更改,我会遇到 IOError、ValueError(当我使用 for each 遍历文件中的每一行并使用 readline() 读取时),或者程序可以运行但它会中断当有空行时关闭我的数据。我还尝试使用 for each 循环使用 .next() 而不是 readline 遍历文件,但这会跳过我数据集中的每一行。我相信那里的***评论可以解决我的问题,除了我的文本文件将有空行,这会过早结束 while 循环。解决这个问题的最佳方法是什么?是否有更好的数据结构可以使用,还是我必须以某种方式解析我的文件以删除空行?

这是我的一段代码,我正在使用 .rstrip() 去除每行末尾的换行符:

f = open(self.path,'r')
    while True:
        line = f.readline().rstrip()
        temp_lines_list.append(line)
        if not line:
            break

一些示例输入:

text1 : 2380218302
test2 : sad
test3 : moresad (very)
yetanothertest : more datapoints

wowanewsection: incredible

希望对你有帮助谢谢:)

【问题讨论】:

如果你说你和另一个人有同样的问题,这很可能是那个问题的重复。请明确说明这有何不同。 如果您使用for 循环,如for line in f: ...,则无需使用readlinenext 或任何其他函数来读取一行;迭代器已经通过变量line 提供了每个新行。 next 是为你隐式调用的。 您是否尝试过使用exception handling? 使用while 循环,您将过早剥离新行;文件结束条件由readline 标记,返回一个真正的空字符串,而文件中的空行作为非空字符串'\n' 返回。 【参考方案1】:

你有没有尝试过这样的事情:

lines_output = []
with open('myFile.txt', 'r') as file: # maybe myFile.txt == self.path??
    for line in file.readlines(): # we use readlines() instead of readline() so we iterate entire file
        stripped_line = line.strip()
        if stripped_line not '':
            lines_output.append(stripped_line) # save info if line is not blank
        else:
            pass # if line is blank just skip it

【讨论】:

不用readlines;文件本身已经是一个迭代器。【参考方案2】:

readline() 方法返回带有尾随换行符的行,即使在空行上也是如此。您应该在剥离之前检查该行是否为空:

while True:
    line = f.readline()
    if not line:
        break
    temp_lines_list.append(line.rstrip())

但是,在 Python 中使用文件对象作为可迭代对象来遍历文件的行更为惯用,这样您就不必自己管理迭代。

for line in f:
    temp_lines_list.append(line.rstrip())

【讨论】:

非常感谢您来自 Java 我一直忘记我可以以这种方式遍历行,而不必使用 readline() 或 readlines()

以上是关于如何遍历一个文件夹下的所有文件,并用md5函数算出所有文件的md5值?(用php实现)的主要内容,如果未能解决你的问题,请参考以下文章

用于错误检查的转换函数算不算好?

Python中如何遍历指定目录下的所有文件?

VC下如何遍历文件夹及嵌套文件夹

如何使用perl遍历一个目录下的所有文件

请教,如何遍历一个文件夹下的所有文本文件

C语言用函数算数组的平均数和方差.如何编写