0

私はtxtファイルを持っています。各行には、1つの場所に分離したいファイルとフォルダーのパスがあります。

私のlist.txtファイルでは、リストはこのようなものです。各エントリは新しい行から始まります。

 C:\xxx\xxy
 C:\abc\def\ghi.pdf

私の宛先フォルダーは c:\users\mr_a\dest です

したい :

1. ディレクトリxxyとそのすべてのファイルとサブフォルダをdest

2.ghi.pdfファイルを に移動しますdest

ファイル内の他のエントリについても同じことを行いlist.txtます。私のdestディレクトリは次のようになります。

dest\xxy
dest\ghi.pdf

調べましshutilたが、どの機能を使用すればよいかまだわかりません。destinationディレクトリが既に存在していてはならないと言われていますが、私の場合はそうではありません。どの方法を使うべきか混乱しています。あなたが言及した方法が安全かどうかについても言及してください(ファイルの一部が失われる可能性があるなどの厄介なカットアンドペーストは必要ありません)

私が求めているのは、ここで行う必要があることを達成するために使用する方法は何ですか?

編集:LinuxやUnixシステムではなく、Windowsを使用しています

4

2 に答える 2

0
with open('list.txt') as f:
    for line in f:
        shutil.move(line, dest)
于 2012-11-23T07:04:36.017 に答える
0

チェックアウトしosos.path. 次のような便利な機能がいくつかあります。

  • os.path.exists-パスが存在するかどうかを確認します(宛先パスなど)
  • os.makedirs- ディレクトリを作成します (欠落している親ディレクトリを含む)
  • os.path.isdir, os.path.isfile- パスにディレクトリまたはファイルが含まれているかどうかを確認します。
  • os.path.basename- ファイル名をパスから切り取ります
  • os.path.join- パス (またはファイル名のあるパス) を結合します

ここにコード例がありますが、私は試していません:

if not os.path.exists(dest):
    os.makedirs(dest)
with open('list.txt', 'r') as f:
    for line in f.readlines():
         filepath = line.strip()
         filename = os.path.basename(filepath)
         shutil.move(filepath, os.path.join(dest, filename))
于 2012-11-23T07:11:46.710 に答える