基于python实现生成指定大小txt文档


Posted in Python onJuly 20, 2020

前言

在测试过程中经常遇到文件上传的功能,文件的大小边界值测试一直没有好的解决办法,这里我分享一个创建文件的脚本希望对大家有帮助。

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文件

基于python实现生成指定大小txt文档基于python实现生成指定大小txt文档

创建100M文件

基于python实现生成指定大小txt文档基于python实现生成指定大小txt文档

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的函数嵌套的使用方法
Jan 24 Python
跟老齐学Python之玩转字符串(2)
Sep 14 Python
Django中使用group_by的方法
May 26 Python
简单谈谈python中的语句和语法
Aug 10 Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 Python
20个常用Python运维库和模块
Feb 12 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
numpy.ndarray 实现对特定行或列取值
Dec 05 Python
Python使用turtle库绘制小猪佩奇(实例代码)
Jan 16 Python
python自定义函数def的应用详解
Jun 03 Python
Keras中 ImageDataGenerator函数的参数用法
Jul 03 Python
Python 列表推导式需要注意的地方
Oct 23 Python
python中upper是做什么用的
Jul 20 #Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 #Python
python集合能干吗
Jul 19 #Python
python如何建立全零数组
Jul 19 #Python
解决python中0x80072ee2错误的方法
Jul 19 #Python
python给视频添加背景音乐并改变音量的具体方法
Jul 19 #Python
python中加背景音乐如何操作
Jul 19 #Python
You might like
php 文件状态缓存带来的问题
2008/12/14 PHP
WordPress网站性能优化指南
2015/11/18 PHP
JavaScript的面向对象(一)
2006/11/09 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
jquery 实现checkbox全选,反选,全不选等功能代码(奇数)
2012/10/24 Javascript
13个PHP函数超实用
2015/10/21 Javascript
jquery validate demo 基础
2015/10/29 Javascript
JavaScript File分段上传
2016/03/10 Javascript
基于Echarts 3.19 制作常用的图形(非静态)
2016/05/19 Javascript
Node.js开发教程之基于OnceIO框架实现文件上传和验证功能
2016/11/30 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
鼠标点击input,显示瞬间的边框颜色,对之修改与隐藏实例
2016/12/26 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
Node.js 异步异常的处理与domain模块解析
2017/05/10 Javascript
js编写选项卡效果
2017/05/23 Javascript
vue2.0+vuex+localStorage代办事项应用实现详解
2018/05/31 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
python实现连接mongodb的方法
2015/05/08 Python
Python进阶篇之字典操作总结
2016/11/16 Python
Python json 错误xx is not JSON serializable解决办法
2017/03/15 Python
TensorFlow如何实现反向传播
2018/02/06 Python
python自动生成model文件过程详解
2019/11/02 Python
python十进制转二进制的详解
2020/02/07 Python
Python 程序员必须掌握的日志记录
2020/08/17 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
会计顶岗实习心得
2014/01/25 职场文书
亮剑精神演讲稿
2014/05/23 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
婚宴新郎致辞
2015/07/28 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
详解redis分布式锁的这些坑
2021/05/19 Redis
详解Flask开发技巧之异常处理
2021/06/15 Python
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL