2

作成したフォルダーを希望の場所に移動するのに問題があります。特定のフォルダー内の各ファイルに対して、新しいフォルダーを作成し、そのファイルを新しいフォルダーに配置したいと考えています。私の問題は、作成した新しいフォルダーが、必要なフォルダーではなく、親ディレクトリに配置されていることです。私の例:

def createFolder():
    dir_name = 'C:\\Users\\Adrian\\Entertainment\\Coding\\Test Folder'
    files = os.listdir(dir_name)
    for i in files:
        os.mkdir(i)

そのディレクトリにある私のファイルが Hello.txt と Goodbye.txt だとしましょう。スクリプトを実行すると、これらのファイル用の新しいフォルダーが作成されますが、1 つ上のレベルの 'C:\Users\Adrian\Entertainment\Coding.

ファイルと同じ場所、AKA 'C:\Users\Adrian\Entertainment\Coding\Test Folder' に作成されるようにするにはどうすればよいですか?

4

2 に答える 2

3
import os, shutil

for i in files:
  os.mkdir(os.path.join(dir_name , i.split(".")[0]))
  shutil.copy(os.path.join(dir_name , i), os.path.join(dir_name , i.split(".")[0]))
于 2012-07-11T04:33:46.797 に答える
2

os.listdir(dir_name)ファイルへのフルパスではなく、ファイルの名前のみをリストします。ファイルへのパスを取得するには、次のように結合しますdir_name

os.mkdir(os.path.join(dir_name, i))
于 2012-07-11T03:14:27.203 に答える