【问题标题】:Continuously Generating Random Coordinates in a Text File Using Python使用 Python 在文本文件中连续生成随机坐标
【发布时间】:2017-06-08 14:15:24
【问题描述】:

有没有办法使用 python 连续向文本文件添加随机坐标? (更新)

import random
import threading

#Open a file named numbersmake.txt.
outfile = open('new.txt', 'w')

def coordinate():
    threading.Timer(0.0000000000001, coordinate).start ()
    x = random.randint(0,10000)
    y = random.randint(0,10000)
    outfile.write("{},{}\n".format(x, y))

coordinate()

#Close the file.
outfile.close()
print('The data is now the the new.txt file')

【问题讨论】:

    标签: python-3.x real-time text-extraction


    【解决方案1】:

    根据您的代码,您似乎只是想一次性生成 12,000 个随机坐标并退出。如果是这种情况,你为什么要线程它?如果您打算在线程处理收集坐标时对程序执行其他操作,则只需要线程。

    如果您的坐标生成是由一些外部的、不可预测的事件触发的,那么它可能是有意义的。否则,如果您真的只是尽快生成一组有限的坐标,我认为您的范围解决方案很好。

    更多关于你真正想做的事情的细节将有助于制定更好的解决方案。

    【讨论】:

    • 正确。现在,该范围一次性生成 12,000 个随机坐标。我想摆脱生成这 12,000 个坐标的范围并改用连续线程,因此我得到了实时图形的连续坐标。我该怎么做?
    • 图表也是从同一个程序中绘制的吗?最大坐标数有限制吗?让线程为文件生成随机数而没有约束或坐标生成之间的任何延迟是有风险的。您是否可能不需要存储坐标?也就是说,如果您使用一个线程生成坐标,您可以将它们放在队列中以供绘图线程执行?
    • 无需存储坐标。我正在使用一个 python 文件生成坐标,将其写入文本并将其读取到另一个绘制坐标图的 python 文件中。如果有更简单的方法,请告诉我!理想情况下,图表需要以每秒 100 帧的速度一次显示 20 个左右的点,然后我们会去掉这些点。
    • 关键是没有理由对你的生成器程序进行线程化,除非它也在做其他事情(例如绘制图表)。如果您想收集无限的坐标,那么您可能需要集成您的“生成器”和“抽屉”,否则您可能会遇到数据文件尝试同时写入和读取的并发问题。我认为你应该将这两个部分整合在一起,假设它们只能一起工作,而不是作为可以在其他地方使用的通用实用程序。
    • 如果不了解所有部分的工作原理,很难给您一个“答案”。但是,听起来 Threading 和 Queue 模块对您有用。也许这个链接可以帮助:troyfawkes.com/learn-python-multithreading-queues-basics
    猜你喜欢
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    相关资源
    最近更新 更多