要使用Python快速生成大文件,你可以使用以下几种方法:
使用`seek`函数
import time
def create_large_file(file_path, file_size_bytes):
with open(file_path, 'w', encoding='utf-8') as file:
file.seek(file_size_bytes) 设置文件偏移量到指定大小
file.write('test') 写入测试数据
生成一个大小为10MB的文件
create_large_file('E:\\large_file.txt', 1024 * 1024 * 10)
重复文本字符串
def generate_file(file_path, file_size_bytes):
text = " Women only affect the speed at which I type Python 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])
生成一个大小为10MB的文件
generate_file('E:\\large_file.txt', 1024 * 1024 * 20)
使用`os`模块创建多个小文件
import os
import time
import random
def create_files(directory, num_files, file_size_bytes):
if not os.path.exists(directory):
os.mkdir(directory)
for i in range(1, num_files + 1):
filename = os.path.join(directory, f"{i}{file_size_bytes}")
with open(filename, 'w') as file:
file.seek(file_size_bytes - 1)
while file.tell() < file_size_bytes:
file.write(f"test{random.uniform(-1000, 1000):.2f}\n")
在C盘根目录下生成1000个大小为1MB的文件
create_files('C:\\test_files', 1000, 1024 * 1024)
用户输入文件大小
file_size = input("请输入想要生成文件的大小(单位MB): ")
class MakeDir:
def __init__(self):
self.file_path = "D:/dir_ytj/"
def file_size_making(self):
file_size_list = file_size.split('.')
if len(file_size_list) == 1:
self.int_size_mb()
else:
self.float_size_mb()
def int_size_mb(self):
file_size_mb = int(file_size.strip())
with open(os.path.join(self.file_path, f"file_size_{file_size_mb}MB"), 'w') as file:
pass
print(f"文件大小{file_size_mb}MB,已存入地址{self.file_path}")
def float_size_mb(self):
file_size_mb = float(file_size.strip())
with open(os.path.join(self.file_path, f"file_size_{file_size_mb}MB"), 'w') as file:
pass
print(f"文件大小{file_size_mb}MB,已存入地址{self.file_path}")
MakeDir().file_size_making()
以上方法可以帮助你快速生成指定大小的大文件。请根据你的需求选择合适的方法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/137840.html