如何用批处理和Python在指定路径生成指定大小的20个.tmp文件
解决方案:生成指定大小的.tmp文件(Python + 批处理)
Python实现
你原来的代码仅创建了空文件,因此大小为0KB。要生成约37KB的文件,需向创建的文件写入对应大小的内容(37KB = 37×1024 = 37888字节),以下是两种实现方式:
方式1:随机字节填充
import tempfile import os import random TARGET_SIZE = 37 * 1024 for i in range(20): # 指定Temp路径创建.tmp文件 fd, filename = tempfile.mkstemp('.tmp', dir=os.path.expandvars(r'C:\Users\%USERNAME%\AppData\Local\Temp')) # 写入指定大小的随机字节 with os.fdopen(fd, 'wb') as f: f.write(random.randbytes(TARGET_SIZE)) print(f"生成文件:{filename}")
方式2:固定字符串填充
import tempfile import os TARGET_SIZE = 37 * 1024 fill_str = b'content_fill' * 128 # 预定义填充块 block_size = len(fill_str) repeat_times = TARGET_SIZE // block_size remainder = TARGET_SIZE % block_size for i in range(20): fd, filename = tempfile.mkstemp('.tmp', dir=os.path.expandvars(r'C:\Users\%USERNAME%\AppData\Local\Temp')) with os.fdopen(fd, 'wb') as f: for _ in range(repeat_times): f.write(fill_str) if remainder > 0: f.write(fill_str[:remainder]) print(f"生成文件:{filename}")
批处理实现
通过fsutil命令直接生成指定大小的文件,结合循环创建20个.tmp文件:
@echo off setlocal enabledelayedexpansion set "TEMP_PATH=C:\Users\%USERNAME%\AppData\Local\Temp" set "TARGET_SIZE=37888" :: 循环生成20个带随机后缀的.tmp文件 for /l %%i in (1,1,20) do ( set "FILE_NAME=!TEMP_PATH!\temp_file_%%random%%.tmp" fsutil file createnew "!FILE_NAME!" !TARGET_SIZE! echo 生成文件:!FILE_NAME! ) endlocal pause
内容的提问来源于stack exchange,提问作者TechNerdTheCoder
相关产品推荐
相关产品推荐

