Python 测试数据生成:模拟员工的工作日

Python 测试数据生成:模拟员工的工作日,python,Python,我试图通过python生成一些测试数据。(我的应用程序不是用python编写的,但python似乎很容易生成数据)。我想通过生成活动的“时段”来模拟员工的典型工作日。下面的函数需要生成开始和结束之间的“n”时隙数(两者之间有一些随机间隔,看起来很自然),总时间为小时 我可以概述我将要做的事情: 绘制n随机数 s=对所有数字求和 将total\u hrs转换为total\u min 制作工作组块:chunks=[c/s*total\u min(以数字表示的c)] 计算结束-开始和总时数 对该差异再

我试图通过python生成一些测试数据。(我的应用程序不是用python编写的,但python似乎很容易生成数据)。我想通过生成活动的“时段”来模拟员工的典型工作日。下面的函数需要生成
开始
结束
之间的“
n
”时隙数(两者之间有一些随机间隔,看起来很自然),总时间为
小时


我可以概述我将要做的事情:

  • 绘制
    n
    随机数
  • s=对所有数字求和
  • total\u hrs
    转换为
    total\u min
  • 制作工作组块:
    chunks=[c/s*total\u min(以数字表示的c)]
  • 计算
    结束-开始
    总时数
  • 对该差异再次执行相同的步骤1-4以获得间隙(使用n+1在开始时留出间隙
  • 最后,将所有块转换为
    datetime.timedelta
    ,并连续添加timedelta以开始(在开始时,您应该已经将
    start
    end
    转换为
    datetime.date

  • 抱歉,我的意思不明确。我不精通python,正在寻找编写此函数以生成时隙的指针/示例。希望std库(time,random)和列表操作工具使此任务更容易(我没有接触过)。我可以考虑用一堆for循环来实现这一点,但希望python专家用户可以帮助我找到一种更好的方法来实现。我想,一个for循环就足够了。循环n次,并为每个循环生成一个槽和一个中断。完成。谢谢。我将深入研究python库文档。我担心的是操纵时间(根据总时间/n添加分数(也可以随机化以避免统一的时隙),还可以在+1之间添加随机间隔。感谢您指出datetime.timedelta的可用性。这使得添加持续时间变得更容易
    slots = [] #list of slot == {start:<>, end:<>}
    def time_slot(start, end, n, total_hrs):
      # generate n non-overlapping time slot between start and end (with some random gap between to seem natural)
    
    print (slots)
    
    time_slot( "1/1/2013 9:00", "1/1/2013 17:00", 3, 8)
    
    [ {start: "1/1/2013 9:00", end: "1/1/2013 10:30"}, ...., {start: "1/1/2013 14:00", end: "1/1/2013 16:44"}]
    
    #total time == 8