使用Python生成指定大小的文件

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

方法1

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

  1. def generate_file(file_path, file_size_bytes):

  2. text = "Women only affect the speed at which I type Pythong code." # 要重复的文本

  3. text_size_bytes = len(text.encode('utf-8')) # 每个重复的文本的大小(以字节为单位)

  4. repetitions = file_size_bytes // text_size_bytes # 需要重复的次数

  5. remainder = file_size_bytes % text_size_bytes # 剩余的字节数

  6. with open(file_path, 'w') as file:

  7. for _ in range(repetitions):

  8. file.write(text)

  9. if remainder > 0:

  10. file.write(text[:remainder])

  11. print("生成完成")

  12. if __name__ == '__main__':

  13. # 生成一个大小为10MB的PDF文件

  14. generate_file('E:\\file_size.txt', 1024 * 1024 * 20)

图片

方法2

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

  1. import os# function: 使用随机数生成器生成特定大小的字节

  2. def generate_file_1(file_path, file_size_bytes):

  3. with open(file_path, 'wb') as file:

  4. file.write(os.urandom(file_size_bytes))

  5. print("生成完成")

  6. if __name__ == '__main__':

  7. # 生成一个大小为10MB的PDF文件

  8. generate_file_1('E:\\file_size.pdf', 1024 * 1024 * 10)

图片

方法3

  1. def generate_file_2(file_path,n,data_type):

  2. '''

  3. :param file_path: 文件路径

  4. :param n: 大小

  5. :param data_type: 文件类型

  6. :return:

  7. '''

  8. file_name=file_path+data_type

  9. bigFile=open(file_name,'w')

  10. bigFile.seek(1024 * 1024 * 1024 * n)

  11. bigFile.write('test')

  12. bigFile.close()

  13. if __name__ == '__main__':

  14. # 生成一个大小为300M的MP4文件

  15. generate_file_2('E:\\file_size',float(0.3),'.mp4')

图片

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 26
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值