Python生成指定大小的文件兩種解決方案
在日常測(cè)試工作中,我們經(jīng)常需要對(duì)上傳的文件大小進(jìn)行測(cè)試,例如:一個(gè)文件上傳功能,限制文件大小最大為10MB,此時(shí)我們可能需要測(cè)試10MB以及其邊界值9MB和11MB;再或者我們有時(shí)需要測(cè)試一個(gè)超大文件,進(jìn)行大文件的測(cè)試。
針對(duì)以上情況,可能一時(shí)難以找到符合準(zhǔn)確數(shù)據(jù)的測(cè)試文件,這時(shí)就可以使用Python來幫助我們生成任意大小的文件,這里提供兩種解決方案。
方法1:
使用特定大小的文本重復(fù)生成,指定一個(gè)文本字符串text,然后將其重復(fù)復(fù)制直至達(dá)到所需的文件大小。
# author: 測(cè)試蔡坨坨
# 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')) # 每個(gè)重復(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__':
# 生成一個(gè)大小為10MB的PDF文件
generate_file('caituotuo.pdf', 1024 * 1024 * 10)
方法2:
使用特定大小的隨機(jī)數(shù)生成,使用隨機(jī)數(shù)生成器生成特定大小的字節(jié),并將其寫入文件中。
# author: 測(cè)試蔡坨坨
# 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__':
# 生成一個(gè)大小為1MB的隨機(jī)數(shù)據(jù)文件
generate_file('caituotuo.docx', 1024 * 1024)
到此這篇關(guān)于Python生成指定大小的文件的文章就介紹到這了,更多相關(guān)Python生成指定大小的文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問題處理
這篇文章主要介紹了python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問題處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
Python中fnmatch模塊實(shí)現(xiàn)文件名匹配
fnmatch模塊用于文件名匹配,支持?Unix shell風(fēng)格的通配符,本文主要介紹了Python中fnmatch模塊實(shí)現(xiàn)文件名匹配,具有一定的參考價(jià)值,感興趣的可以了解一下2025-04-04
Python獲取本機(jī)IP/MAC多網(wǎng)卡方法示例
這篇文章主要為大家介紹了Python獲取本機(jī)IP/MAC多網(wǎng)卡方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08
Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù)詳解
這篇文章主要介紹了Python中號(hào)稱神仙的六個(gè)內(nèi)置函數(shù),今天分享的這6個(gè)內(nèi)置函數(shù),在使用?Python?進(jìn)行數(shù)據(jù)分析或者其他復(fù)雜的自動(dòng)化任務(wù)時(shí)非常方便,需要的朋友可以參考下2022-05-05
YOLOv5部署到web端詳細(xì)過程(flask+js簡(jiǎn)單易懂)
YOLOv5是一個(gè)目標(biāo)檢測(cè)模型,Flask是一個(gè)Python的Web框架,下面這篇文章主要給大家介紹了關(guān)于YOLOv5部署到web端(flask+js簡(jiǎn)單易懂)的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法
這篇文章主要介紹了Python實(shí)現(xiàn)壓縮與解壓gzip大文件的方法,分析了Python針對(duì)壓縮成gzip文件及解壓gzip文件的方法,并給出了相應(yīng)的封裝類,需要的朋友可以參考下2016-09-09

