Python生成指定大小的文件兩種解決方案
在日常測試工作中,我們經(jīng)常需要對上傳的文件大小進(jìn)行測試,例如:一個文件上傳功能,限制文件大小最大為10MB,此時我們可能需要測試10MB以及其邊界值9MB和11MB;再或者我們有時需要測試一個超大文件,進(jìn)行大文件的測試。
針對以上情況,可能一時難以找到符合準(zhǔn)確數(shù)據(jù)的測試文件,這時就可以使用Python來幫助我們生成任意大小的文件,這里提供兩種解決方案。
方法1:
使用特定大小的文本重復(fù)生成,指定一個文本字符串text,然后將其重復(fù)復(fù)制直至達(dá)到所需的文件大小。
# author: 測試蔡坨坨
# datetime: 2023/6/8 1:31
# function: 使用特定大小的文本生成指定大小的文件
def generate_file(file_path, file_size_bytes):
text = "This is some sample text by caituotuo." # 要重復(fù)的文本
text_size_bytes = len(text.encode('utf-8')) # 每個重復(fù)的文本的大?。ㄒ宰止?jié)為單位)
repetitions = file_size_bytes // text_size_bytes # 需要重復(fù)的次數(shù)
remainder = file_size_bytes % text_size_bytes # 剩余的字節(jié)數(shù)
with open(file_path, 'w') as file:
for _ in range(repetitions):
file.write(text)
if remainder > 0:
file.write(text[:remainder])
if __name__ == '__main__':
# 生成一個大小為10MB的PDF文件
generate_file('caituotuo.pdf', 1024 * 1024 * 10)
方法2:
使用特定大小的隨機(jī)數(shù)生成,使用隨機(jī)數(shù)生成器生成特定大小的字節(jié),并將其寫入文件中。
# author: 測試蔡坨坨
# datetime: 2023/6/8 2:31
# function: 使用特定大小的隨機(jī)數(shù)生成文件
import os
def generate_file(file_path, file_size_bytes):
with open(file_path, 'wb') as file:
file.write(os.urandom(file_size_bytes))
if __name__ == '__main__':
# 生成一個大小為1MB的隨機(jī)數(shù)據(jù)文件
generate_file('caituotuo.docx', 1024 * 1024)
到此這篇關(guān)于Python生成指定大小的文件的文章就介紹到這了,更多相關(guān)Python生成指定大小的文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用Pillow創(chuàng)建可自定義的圖標(biāo)生成器
在本篇博客中,我們將探討如何使用?wxPython?和?Pillow?庫創(chuàng)建一個簡單的圖標(biāo)生成器,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-11-11
python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解
這篇文章主要介紹了python簡單實現(xiàn)最大似然估計&scipy庫的使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04
解決Jupyter Notebook “signal only works&nb
這篇文章主要介紹了解決Jupyter Notebook “signal only works in main thread“問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09

