Python 文件计数不匹配

标签 python linux operating-system

我有一个简单的脚本来生成随机的基本为空的文本文件,我将其用作另一个项目的沙箱数据。对于所有意图和目的,它都有效,但我注意到,如果选择了大于 1500 的值,则生成的所需文件数和实际计数有时不匹配。

我的代码如下:

import os
import random
path = "data/"
def makeFiles():
    count = int(input("How many to make?\n"))   
    for x in range(0,count):
        num = random.randint(10000,999999)
        name = path+str(num)+".txt"
        f = open(name,"w")
        f.write(str(x))
        f.close()
        print(x)
makeFiles()

我在 Linux Mint(本质上是 Ubuntu 16.04)上使用 Python 3.6。我觉得如果我延迟 time.sleep 可能会解决问题,但事实并非如此。当制作2500个文件时,此时会按常规生成2497个。任何意见,将不胜感激。谢谢!

最佳答案

要避免使用 random.randint() 重复数字,您可以使用 random.sample()。来自@cᴏʟᴅsᴘᴇᴇᴅ的所有其他建议(和被盗代码)。

更新 @cᴏʟᴅsᴘᴇᴇᴅ 删除了他的回答所以这是他的其他建议:

  1. 加入路径时使用os.path.join
  2. 使用 with...as 上下文管理器来管理文件 I/O

例如:

for x, num in enumerate(random.sample(range(10000, 1000000), count)):        
    name = os.path.join(path, "{}.txt".format(num))
    with open(name, "w") as f:
        f.write(str(x))

关于Python 文件计数不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46082501/

相关文章:

python - 在 App Engine 应用程序中放置缓存驱逐逻辑的最佳位置在哪里?

python - 如何在列写的文件中找到特定需求并将其复制到另一个文件

python - 使用 python 从时间列表中创建平均值

php - 如何从 php/html 执行 shell 脚本?

memory - 倒排页表如何处理多个进程访问同一帧

python - top 报告的 Python 线程的 ID

在 GTK+ gui 中调用外部函数

linux - 如何在 ubuntu 上将文件设置为此 drwxrwsrwx 权限

Python:os.listdir 替代/某些扩展

java - 线性搜索和反向线性搜索的执行时间不同