2014-12-05 32 views
0

我有一个有趣的小脚本,我想在随机目录中制作它自己的副本 - 然后运行它自己的副本。Python 3将文件自动复制到随机目录 - 然后运行文件

我知道如何与(哈克)运行文件:

os.system('Filename.py') 

,我知道如何复制穿梭文件 - 但我停留在随机目录。也许如果我能以某种方式获得所有可用目录的列表,然后从列表中随机选择一个 - 然后从列表中删除此目录?

感谢, Itechmatrix

回答

1

你可以得到所有迪尔斯和子目录的列表,并在随机洗牌,如下所示:

import os 
import random 

all_dirs = [x[0] for x in os.walk('/tmp')] 
random.shuffle(all_dirs) 

for a_dir in all_dirs: 
    print(a_dir) 
    # do something witch each directory, e.g. copy some file there. 
0

你可以得到一个目录列表,然后随机选择:

import os 
import random 
dirs = [d for d in os.listdir('.') if os.path.isdir(d)] 
n = random.randrange(len(dirs)) 
print(dirs[n]) 
0

如果您使用的是Mac,则在根目录附近会有相当数量的隐藏和限制目录。您可能会遇到可读性和可写性错误。解决这个问题的一种方法是遍历可用的目录,并使用os模块对所有“不使用”进行排序。 之后,您可以使用random.choice模块从该列表中选取一个随机目录。

import os, random 

writing_dir = [] 
for directory in os.listdir(): 
    if os.access(directory, W_OK) # W_OK ensures that the path is writable 
    writing_dir.append(directory) 

path = random.choice(writing_dir) 

我正在研究类似的脚本。

相关问题