python生成指定大小的文件

# -*- coding: utf-8 -*- 
"""
Project: Lemon_test
Creator: Amica
Create time: 2019-12-10 18:59
IDE: PyCharm
Introduction:
"""

import getpass
import time


# 获取username, 如chinaren
def getusername():
    username = getpass.getuser() # 获取当前用户名
    # 获取当前的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 = '/Users/' + getusername() + '/Desktop/'
    print(filepath+filename)

    f = open(filepath+filename, 'w')
    # 获取开始时间
    starttime = getnowdatatime()

    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')


if __name__ == '__main__':
    generateTXTFile()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容