Python生成指定大小文件:txt/图片/视频/csv

如题,做测试的懂的都懂,不多解释

相比其他大佬,本脚本基于gpt编写后整理,生成的文件更真实,能够打开预览,看过其他人的生成脚本,只是一个符合大小,但是是空白或不能打开的文件。

话不多说,看示例,记得在创建一个data目录。

代码示例:

import os
import time
import csv
from PIL import Image
import random
import numpy as np
import imageio
import cv2# pip install opencv-python
# pip install Pillow
def generate_txt(file_size):file_size_bytes = 1024 * 1024 * file_sizefile_path = './data/txt' + time.strftime('%Y%m%d') + '_' + str(file_size) + 'M.txt'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("生成完成")def generate_video(target_filesize_mb,  frame_width=1920, frame_height=1080, frame_rate=30):temp_filename = './data/image' + time.strftime('%Y%m%d') + '_' + str(target_filesize_mb) + 'M.mp4'fourcc = cv2.VideoWriter_fourcc(*"mp4v")out = cv2.VideoWriter(temp_filename, fourcc, frame_rate, (frame_width, frame_height))while True:frame = np.random.randint(0, 256, (frame_height, frame_width, 3), dtype=np.uint8)out.write(frame)current_filesize = (len(open(temp_filename, "rb").read())) / (1024 * 1024)  # in MBif current_filesize >= target_filesize_mb:breakout.release()def generate_image(memory_size, filename):""":param memory_size: 生成图片的大小,单位是m:param filename: 生成图片的文件格式:return:"""filename = './data/image'+ time.strftime('%Y%m%d') +'_'+ str(memory_size) + 'M' '.'+filename# 计算所需的像素数量num_pixels = (memory_size * 1024 * 1024) // 3  # 每个像素占用 3 个字节(RGB模式)# 根据像素数量计算图片的长和宽img_width = int(np.sqrt(num_pixels))img_height = int(num_pixels / img_width)# 创建一个随机颜色的数组pixels = np.random.randint(0, 256, (img_height, img_width, 3), dtype=np.uint8)# 根据数组创建图片对象image = Image.fromarray(pixels, 'RGB')image.save(filename)def generate_csv(target_memory_mb):file_name = './data/csv_utf8 ' + time.strftime('%Y%m%d') +"_"+ str(target_memory_mb) + 'M.csv'row_data = "Data" * 100  # Adjust length to control memory usage per rowwith open(file_name, 'w', newline='', encoding='utf-8') as csv_file:writer = csv.writer(csv_file)while os.path.getsize(file_name) / (1024 * 1024) < target_memory_mb:writer.writerow([row_data])if __name__ == '__main__':# 生成一个大小为10MB的PDF文件generate_txt(2)generate_video(target_filesize_mb=15)# 生成一个10M 的png的图片generate_image(10, "png")# 以utf-8的格式,生成一个10M的csv文件  CSV 文件的大小通常由数据量和内容决定,而不是像 Excel 那样可以直接控制行高和列宽。CSV 文件的大小可能会受到编码和分隔符的影响generate_csv(target_memory_mb=10)  # Change target memory size as needed

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/33724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ad+硬件每日学习十个知识点(26)23.8.6 (DCDC的降压电路、升压电路、降压-升压电路,同步整流,选型考虑同步、隔离)

文章目录 1.DCDC的降压原理2.DCDC的升压原理3.DCDC的升压和降压原理4.什么是肖特基二极管造成的死区电压&#xff1f;5.MOS管有死区电压么&#xff1f;6.DCDC的同步整流&#xff08;用MOS管取代整流二极管&#xff0c;避免死区电压的影响&#xff09;7.DCDC选型——同步与非同步…

近地面无人机植被定量遥感与生理参数反演技术

遥感&#xff08;RS-Remote Sensing&#xff09;——不接触物体本身&#xff0c;用传感器收集目标物的电磁波信息&#xff0c;经处理、分析后&#xff0c;识别目标物&#xff0c;揭示其几何、物理性质和相互关系及其变化规律的现代科学技术。 换言之&#xff0c;即是“遥远的感…

一文读懂什么是Byzer

目录 一、什么是Byzer? 二、Byzer特性 2.1 语法特性 2.2 数据的管理特性 2.3 支持自定义函数拓展Byzer语法 三、Byzer有哪些功能&#xff1f; 3.1 Byzer-Lang语言特性 3.1.1强大的数据处理能力 3.1.2内置机器学习算法 3.2 Byzer-Lang支持权限控制 3.3 Byzer-LLM拓展…

Spring测试题及答案

1&#xff1a;下面关于“依赖注入”的说法&#xff0c;错误的是&#xff08;D&#xff09; A. 将组件间的依赖关系采取配置文件的方式管理&#xff0c;而不是硬编码在代码中 B. 降低了组件间的耦合&#xff0c;使程序更容易维护和升级 C. 促进了“面向接口编程”&#xff0c…

【工程优化问题】基于鲸鱼、萤火虫、灰狼优化算法的张力、压缩弹簧设计问题研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JQuery判断radio(单选框)是否选中和获取选中值方法总结

使用checked属性判断选中、jquery获取radio单选按钮的值、获取一组radio被选中项的值、设置单选按钮被选中等&#xff0c;详细如下&#xff1a; 一、利用获取选中值判断选中 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.…

el-tree-select那些事

下拉菜单树形选择器 用于记录工作及日常学习涉及到的一些需求和问题 vue3 el-tree-select那些事 1、获取el-tree-select选中的任意层级的节点对象 1、获取el-tree-select选中的任意层级的节点对象 1-1数据集 1-2画面 1-3代码 1-3-1画面代码 <el-tree-selectv-model"s…

(6)所有角色数据分析-6

http://t.csdn.cn/KrurEhttp://t.csdn.cn/KrurE &#xff08;5&#xff09;中的页面&#xff0c;倾向于向用户展示所有数据&#xff0c;但却没有对数据进行比较、分析&#xff0c;用户不能直观的感受到各种数据之间的关系与变化幅度&#xff0c;所以&#xff0c;下面将向用户提…

SQLAlchemy------更多查询

1 查询&#xff1a; filer:写条件 filter_by&#xff1a;等于的值 res session.query(User).all() # 是个普通列表 print(type(res)) print(len(res)) all()的结果就是列表&#xff0c;列表里面是对象 2 只查询某几个字段 # select name as xx,email from user; res…

centos7编译安装升级python3.11

编译安装python3.11 准备步骤解压编译替换升级 准备步骤 yum -y install gcc zlib zlib-devel libffi libffi-devel bzip2-devel yum -y install openssl-devel openssl11 openssl11-devel yum -y install readline-devel解压编译 wget https://www.python.org/ftp/python/3.…

Node.js |(三)Node.js API:path模块及Node.js 模块化 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;path模块&#x1f4da;Node.js模块化&#x1f407;介绍&#x1f407;模块暴露数据⭐️模块初体验⭐️暴露数据 &#x1f407;导入文件模块&#x1f407;导入文件夹的…

adb 命令行执行单元测试

文章目录 1、配置 adb 环境变量2、adb 执行测试3、官方文档解读 adb 使用&#xff08;1&#xff09;第一条执行测试的adb命令&#xff08;2&#xff09;am instrument 参数&#xff08;3&#xff09;-e 参数 的 key-value键值对&#xff08;4&#xff09;用法用例 4、存在问题 …

Python3 安装、环境变量配置、PyCharm新建Python项目

一、安装包下载 Pyhton官网下载>>最新稳定版的安装包&#xff1a; 找到合适的版本进行下载&#xff1a; 如果下载较慢&#xff0c;此处提供一个3.10.11的稳定版本的安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/16GnWjkGFuSfWfaI9UVX8qA?pwd4u5o 提取…

崔颢的黄鹤楼

我们上学的时候学的是&#xff1a; 昔人已乘黄鹤去&#xff0c;此地空余黄鹤楼。 黄鹤一去不复返&#xff0c;白云千载空悠悠。 晴川历历汉阳树&#xff0c;芳草萋萋鹦鹉洲。 日暮乡关何处是&#xff1f;烟波江上使人愁。 然而敦煌诗卷版本是这样的 昔人已乘白云去&#xff0c…

24聊城大学823软件工程考研

1.软件发展有几个阶段&#xff1f;各有何特征&#xff1f; ①程序设计阶段 硬件特征&#xff1a;价格贵、存储容量小、运行可靠性差。 软件特征&#xff1a;只有程序、程序设计概念&#xff0c;不重视程序设计方法。 ②程序系统阶段。 硬件特征&#xff1a;速度、容量及工作可…

MySQL高阶知识点

MySQL 文章目录 MySQLchar和varchar的区别视图视图的特点 存储过程存储过程的特点 触发器触发器的特点 MySQL引擎索引为什么要有索引呢&#xff1f;什么是索引索引的优势索引的劣势索引类型索引种类组合索引最左前缀原则索引创建原则B树和B树的区别数据库为什么使用B树而不是B树…

Android Https

本质&#xff1a;在客户端和服务端使用非对称加密协商出一套对称密钥&#xff0c;每次发送数据前加密&#xff0c;收到后解密&#xff0c;达到加密传输 http ssl 在http之下增加了安全层&#xff0c;用于保障http的加密传输 HTTPS连接 TLS连接步骤 1.客户端发送 client h…

【Linux】网络基础2

文章目录 网络基础21. 应用层1.1 协议1.2 HTTP 协议1.2.1 URL1.2.2 urlencode和urldecode1.2.3 HTTP协议格式1.2.4 HTTP的方法1.2.5 HTTP的状态码1.2.6 HTTP 常见的header1.2.7 最简单的HTTP服务器 2. 传输层2.1 端口号2.1.1 端口号范围划分2.1.2 认识知名端口号2.1.3 netstat2…

Redis_安装、启动以及基本命令

2.Redis安装 2.1前置处理环境 VMware安装安装centOS的linux操作系统xshellxftp 2.2 配置虚拟机网络 按ctrlaltf2 切换到命令行 cd (/)目录 修改/etc/sysconfig/network-scripts/ifcfg-ens3 vi 命令 按insert表示插入 按ctrlesc退出修改状态 :wq 写入并退出 此文件必须保持一…

10.pod资源限制和健康检查

文章目录 资源限制探针&#xff08;健康检查&#xff09;启动、退出动作总结 资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。当为 pod 中的容器指定了 request 资源时&#xff0c…