1. 程式人生 > 實用技巧 >python生成指定大小的txt文件(MB)

python生成指定大小的txt文件(MB)

前言

在測試過程中經常遇到檔案上傳的功能,檔案的大小邊界值測試一直沒有好的解決辦法,這裡我分享一個建立檔案的指令碼希望對大家有幫助。

demo

"""
 * Create by dell on 2020/7/10
 * Author :wencheng
 * 微信公眾 :自動化測試 To share
"""
# !/user/bin/env python
# -*- coding:utf-8 -*-

import os
import time


# 獲取username, 如chinaren
def getusername():
    namelist = os.popen('echo %username%').readlines()
    username = namelist[0].replace("\n", "")
    # 獲取當前的username
    return username


# 獲取時間和日期
def getnowdatatime(flag=0):
    '''
    flag = 0為時間和日期         eg:2018-04-11 10:04:55
    flag = 1僅獲取日期           eg:2018-04-11
    flag = 2僅獲取時間           eg:10:04:55
    flag = 3純數字的日期和時間   eg:20180411100455
    '''
    now = time.localtime(time.time())
    if flag == 0:
        return time.strftime('%Y-%m-%d %H:%M:%S', now)
    if flag == 1:
        return time.strftime('%Y-%m-%d', now)
    if flag == 2:
        return time.strftime('%H:%M:%S', now)
    if flag == 3:
        return time.strftime('%Y%m%d%H%M%S', now)


# 生成指定大小的TXT檔
def generateTXTFile():
    fileSize = 0
    # 判斷輸入是否有誤
    while True:
        size = input('請輸入你想生成的TXT檔案大小(MB):')
        if size.strip().isdigit() != True:
            print('只能輸入整數,請重新輸入!')
            continue
        else:
            fileSize = int(size)
            break
    if fileSize >= 200:
        print('正在生成TXT檔案,請稍候... ...')
    # 生成指定大小的TXT檔
    filename = getnowdatatime(3) + '_' + size + 'MB.txt'
    print(f'檔名:{filename}')
    # 設定檔案儲存的路徑
    filepath = 'C:\\Users\\' + getusername() + '\\Desktop\\'
    f = open(filepath + filename, 'w')
    # 獲取開始時間
    starttime = getnowdatatime()
    startclock = time.clock()
    for i in range(fileSize):
        if i >= 100:
            if i % 100 == 0:
                print(f'已生成{i//100 * 100}MB資料.')
        for j in range(1024):
            try:
                f.write('01' * 512)
            except KeyboardInterrupt:
                print('\n異常中斷:KeyboardInterrupt')
                f.close()
                exit(-1)
    f.close()
    print(f'檔案已成生並儲存在桌面,  檔案大小:{fileSize}MB.\n')
    print(f'DetailInfo:')
    print(f'儲存路徑: {filepath + filename}')
    print(f'開始時間:{starttime}')
    print(f'結束時間:{getnowdatatime()}')
    print(f'總共耗時:{(time.clock() - startclock):<.3}sec.')


if __name__ == '__main__':
    generateTXTFile()

建立1M檔案

建立100M檔案

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家的支援。

更多文章關注小編公眾號:自動化測試 To share