首页 > 编程语言 >Python - 生成指定大小的文件

Python - 生成指定大小的文件

时间:2023-06-21 18:46:16浏览次数:39  
标签:__ 1024 Python text bytes 指定 生成 file size

项目测试过程中需要上传不同大小的文件,一时难以找到这么多测试数据,网上查了下,可以使用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')

 

标签:__,1024,Python,text,bytes,指定,生成,file,size
From: https://www.cnblogs.com/xiaolintongxue1/p/17496830.html

相关文章

  • eclipse怎么通过Maven Build生成运行jar包
    1、首先打开“eclipse”,并右击选中一个你要生成jar包的项目2、然后点击展开栏中的“MavenBuild...”3、其次按如图方式输入package,勾选SkipTests,点击下方的Apply,最后点击Run即可4、最后生成的jar文件,在根目录的target下面 转自:https://jingyan.baidu.c......
  • 十六、python里的函数
    十六、python里的函数python里函数分为内置函数与自定义函数内置函数:如int(),str(),len()等,所有的内置函数参考https://docs.python.org/3/library/functions.html自定义函数的定义与调用(重点)deffunct():#函数名(),括号里可以写参数,也可以不写"""函数说......
  • Python遍历dict类型数据,输出预期结果
    主要代码段: dict数据(预期结果对应的数据如下)1、 2、 输出预期结果:1、[(值1,值2),(值3,值4)] 2、[(值1,值2)](两种情况不会同时出现) ......
  • Day 01 python基础
    某个字的编码print(ord('北'))#北这个字的编码(数字)21271多条print()输出到一行显示,只需要将end设置成其他字符,比如end=‘(中间放内容)’使用连接符连接多个字符串,使用“+”连接数值和其他数据类型时,系统默认为加法计算,程序报错,解决方案,可将数值作为字符串来处理可以......
  • python基础之编码和加密
    一、base64importbase64#编码s1='hello'result=base64.b64encode(s1.encode())#只能对bytes类型编码,结果为bytes类型print(result.decode())#解码为字符串#解码res="6IuR5rWpIGlzIGdvb2Q="s2=base64.b64decode(res.encode())#只能对bytes类型解码,结......
  • 自动化平台总结(httprunner+djangorestframework+python3+Mysql+Vue)【基础构思】
    一、前言最近从零搭建了一个自动化测试平台,虽然不是第一次从零搭建,但是也从来没有进行过这类搭建的总结,还是记录一下,搭建过程中的一些问题和方法。方便以后总结和翻阅二、简介搭建的平台使用的是Python3.6,未来有空可能考虑加个java版本。前端用的Vue,主体是httprunner2.......
  • 【python基础】类-继承
    编写类时,并非总是要从空白开始。如果要编写的类时另一个现成类的特殊版本,可使用继承。一个类继承另一个类时,它将自动获得另一个类的所有属性和方法原有的类称为父类,而新类被称为子类。子类继承了其父类的所有属性和方法,同时还可以定义自己的属性和方法。继承语法格式:class子类......
  • CentOS7 源码编译安装 Python 3.8.10,开启 SSL 功能
    背景CentOS7自带的Python3,或者通过yum安装的Python3,可能会有无法使用ssl的问题:$python3Python3.8.10(default,Jun132023,14:51:15)[GCC11.2.120220127(RedHat11.2.1-9)]onlinuxType"help","copyright","credits"or"license&qu......
  • Python 安装依赖包,出现 ssl.SSLCertVerificationError 的问题,解决方法
    问题描述CentOS7环境,已安装Python3.8.10。最近项目开发,需要切换solidity版本,参考开发文档,需要执行如下命令pipinstallsolc-select==0.2.0#安装指定版本solcsolc-selectinstall<solc版本号>#切换solc版本solc-selectuse<solc版本号>先使用pipinstallsolc-......
  • python基础之并发
    一、多线程示例代码1:简单多线程importtimeimportthreadingdeffoo(t):print("foo开始")time.sleep(t)print("foo结束")start=time.time()t_list=[]foriinrange(100):t=threading.Thread(target=foo,args=(2,))#注意,如果只有一个参......