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