0

ランダムなディレクトリに自分自身のコピーを作成し、そのコピーを実行したいという楽しい小さなスクリプトがあります。

(ハック)でファイルを実行する方法を知っています:

os.system('Filename.py')

そして、シャトルでファイルを複製する方法を知っていますが、ランダムなディレクトリで立ち往生しています。たぶん、利用可能なすべてのディレクトリのリストを何らかの形で取得し、リストからランダムに1つを選択できたら、このディレクトリをリストから削除しますか?

ありがとう、アイテックマトリックス

4

3 に答える 3

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. 
于 2014-12-05T04:06:08.657 に答える
0

Mac を使用している場合、ルートの近くにかなりの数の隠しディレクトリと制限付きディレクトリがあります。読みやすさと書きやすさでエラーが発生する可能性があります。これを回避する 1 つの方法は、利用可能なディレクトリを反復処理し、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)

私は現在、同様のスクリプトに取り組んでいます。

于 2016-08-02T11:13:21.080 に答える
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])
于 2014-12-05T04:10:01.290 に答える