使用追加的方式,写入相关的文件,使得文件大小达到预期目标
def int_size_mb(self):
# 整数部分用写入文件w方式
with open(self.file_path + self.file_name, "w") as file:
# b-kb-mb文件大小转化
for i in range(int(self.file_size_list[0])):
for j in range(1024):
file.write("01" * 512)
def float_size_mb(self):
# 小数部分用追加写入a方法
with open(self.file_path + self.file_name, "a") as file:
# 获取小数(单位mb)
float_size_mb = float(self.file_size) - int(self.file_size_list[0])
for i in range(1024):
file.write("1" * int(1024 * float_size_mb))
定义相关类,写入目录,创建文件名等。整个功能代码如下
class MakeDir:
def __init__(self, file_size):
self.file_path = "./dir_test_file/"
self.file_name = "test.avi"
self.file_size = file_size
new_file_size = file_size.strip()
file_size_list = new_file_size.split(".")
self.file_size_list = file_size_list
def fileSize_making(self):
# 输入的文件大小去除首尾空格后切割,如果列表中只有一个数字说明是整数,否则就是小数
if len(self.file_size_list) == 1:
self.int_size_mb()
print("文件大小{}MB,已存入地址{}".format(self.file_size, self.file_path))
else:
self.int_size_mb()
self.float_size_mb()
print("文件大小{}MB,已存入地址{}".format(self.file_size, self.file_path))
def int_size_mb(self):
# 整数部分用写入文件w方式
with open(self.file_path + self.file_name, "w") as file:
# b-kb-mb文件大小转化
for i in range(int(self.file_size_list[0])):
for j in range(1024):
file.write("01" * 512)
def float_size_mb(self):
# 小数部分用追加写入a方法
with open(self.file_path + self.file_name, "a") as file:
# 获取小数(单位mb)
float_size_mb = float(self.file_size) - int(self.file_size_list[0])
for i in range(1024):
file.write("1" * int(1024 * float_size_mb))
if __name__ == '__main__':
MakeDir('200').fileSize_making()
初始化类,调用创建文件的方法,即可生成想要目标大小的文件。
执行效果如下图
生成文件的大小如下