在一个文件夹中,有3000个json文件,我想将md5相同的json文件提取到同一个文件夹中,python实现

Posted 不积跬步无以至千里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在一个文件夹中,有3000个json文件,我想将md5相同的json文件提取到同一个文件夹中,python实现相关的知识,希望对你有一定的参考价值。

以下是一个使用Python实现的示例代码,可以将具有相同MD5哈希值的JSON文件提取到同一个文件夹中:

import os
import shutil
import hashlib

# 用于计算文件的MD5哈希值
def calculate_md5(file_path):
    with open(file_path, \'rb\') as f:
        data = f.read()
        md5_hash = hashlib.md5(data).hexdigest()
    return md5_hash

# 输入文件夹路径和目标文件夹路径
input_folder = \'/path/to/input/folder\'
output_folder = \'/path/to/output/folder\'

# 创建目标文件夹
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 存储MD5哈希值和对应文件路径的字典
md5_dict = 

# 遍历输入文件夹中的所有文件
for file_name in os.listdir(input_folder):
    file_path = os.path.join(input_folder, file_name)

    # 仅处理JSON文件
    if file_name.endswith(\'.json\') and os.path.isfile(file_path):
        # 计算文件的MD5哈希值
        md5_hash = calculate_md5(file_path)

        # 将文件路径添加到对应的MD5哈希值列表中
        if md5_hash in md5_dict:
            md5_dict[md5_hash].append(file_path)
        else:
            md5_dict[md5_hash] = [file_path]

# 提取具有相同MD5哈希值的文件到同一个文件夹中
for md5_hash, file_paths in md5_dict.items():
    if len(file_paths) > 1:
        target_folder = os.path.join(output_folder, md5_hash)

        # 创建目标文件夹
        if not os.path.exists(target_folder):
            os.makedirs(target_folder)

        # 将文件复制到目标文件夹中
        for file_path in file_paths:
            shutil.copy(file_path, target_folder)

该代码会遍历输入文件夹中的所有JSON文件,计算每个文件的MD5哈希值,并将具有相同哈希值的文件提取到以哈希值命名的文件夹中。如果文件夹不存在,代码会自动创建它。

如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件为“sin.txt”,另一个为“cos.txt”,我想将它们分别绘制在一张图上

【中文标题】如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件为“sin.txt”,另一个为“cos.txt”,我想将它们分别绘制在一张图上【英文标题】:How to plot 2 files data separately in Gnuplot ?I have one file as "sin.txt" and other as "cos.txt" and i want to plot them separately on one graph 【发布时间】:2020-06-27 19:30:14 【问题描述】:
int main()

        FILE *gnuplotPipe = popen("gnuplot -persist", "w");
if (gnuplotPipe) 
        fprintf(gnuplotPipe, "reset \n");
        fprintf(gnuplotPipe, "plot  'sin.txt' with lines  linestyle 1 lw 5 lc 2  \n");
        fprintf(gnuplotPipe, "replot  'cos.txt' with lines  linestyle 2 lw 5 lc 2  \n");
        fflush(gnuplotPipe);
        fprintf(gnuplotPipe, "exit \n");
        pclose(gnuplotPipe);
              
 return 0;

// 问题是它混合了两个文件数据然后绘制。我希望两个图是分开的

【问题讨论】:

我很难理解您所说的 “单独在一个图表上” 的意思,因为 “单独” 意味着 ”在不同的图表上”。也许您可以单击edit 并添加一个示例或草图来说明结果应该是什么样的?谢谢。 这真的是一个 C++ 问题吗?手动使用gnuplot你知道怎么做吗? 分开我的意思是两个数据不应该混合。我的意思是文件“cos.txt”有自己的数据。它应该制作自己的图表。“sin.txt”有自己的数据应该绘制自己的图表。 @MarkSetchell 我试过了。但它只显示“cos.txt”和“sin.txt”仅显示 1 秒。两个图没有一起显示 尝试通过阅读这篇文章来了解如何在 shell 中执行此操作...alvinalexander.com/technology/gnuplot-charts-graphs-examples 然后适应 C++。 【参考方案1】:

“-persist”选项应该写成“--persist”或“-p”。

【讨论】:

以上是关于在一个文件夹中,有3000个json文件,我想将md5相同的json文件提取到同一个文件夹中,python实现的主要内容,如果未能解决你的问题,请参考以下文章

S3中json和jpeg组合的列表和文件夹

如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件为“sin.txt”,另一个为“cos.txt”,我想将它们分别绘制在一张图上

使用 python/pandas 从特定文件夹中读取几个嵌套的 .json 文件到 excel 中

读取 txt 文件的行并组织在 JSON 文件中

我想将图像数据(Texture2D)转换为 Base64 字符串并存储在 Unity3D(C#)中的 JSON 文件中

当我想将 localhost:4000 重定向到 localhost:3000 时出现错误 CORS