Python - 生成指定大小的文件

项目测试过程中需要上传不同大小的文件,一时难以找到这么多测试数据,网上查了下,可以使用Python来快速生成,方法如下

方法1:

使用特定大小的文本重复生成,指定一个文本字符串text,然后将其重复复制直至达到所需的文件大小。

复制代码
def generate_file(file_path, file_size_bytes):
    text = "Women only affect the speed at which I type Pythong code."  # 要重复的文本
    text_size_bytes = len(text.encode('utf-8'))  # 每个重复的文本的大小(以字节为单位)

    repetitions = file_size_bytes // text_size_bytes  # 需要重复的次数
    remainder = file_size_bytes % text_size_bytes  # 剩余的字节数

    with open(file_path, 'w') as file:
        for _ in range(repetitions):
            file.write(text)

        if remainder > 0:
            file.write(text[:remainder])
    print("生成完成")

if __name__ == '__main__':
    # 生成一个大小为10MB的PDF文件
    generate_file('E:\\file_size.txt', 1024 * 1024 * 20)
复制代码

 

方法2:

使用特定大小的随机数生成,使用随机数生成器生成特定大小的字节,并将其写入文件中。

复制代码

import os
# function: 使用随机数生成器生成特定大小的字节
def generate_file_1(file_path, file_size_bytes):
    with open(file_path, 'wb') as file:
        file.write(os.urandom(file_size_bytes))
    print("生成完成")

if __name__ == '__main__':
# 生成一个大小为10MB的PDF文件
    generate_file_1('E:\\file_size.pdf', 1024 * 1024 * 10)
复制代码

 

 

方法3:

复制代码
def generate_file_2(file_path,n,data_type):
    '''
    :param file_path: 文件路径
    :param n: 大小
    :param data_type: 文件类型
    :return:
    '''
    file_name=file_path+data_type
    bigFile=open(file_name,'w')
    bigFile.seek(1024 * 1024 * 1024 * n)
    bigFile.write('test')
    bigFile.close()

if __name__ == '__main__':
    # 生成一个大小为300M的MP4文件
    generate_file_2('E:\\file_size',float(0.3),'.mp4')
复制代码

 

posted @   小林同学_Scorpio  阅读(249)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
1
点击右上角即可分享
微信分享提示