2016-11-12 1 views
0

私はPython shutilモジュールを使用して、FolderAからFolderBに4つのtxtファイルを移動しています。Pythonのテキストファイルを別のフォルダに移動できないのはなぜですか?

私は、次のコードを実行すると、私はトレースバックエラーが表示されます。私は、このコマンドをしようとすると、それが正常に動作し、全体のフォルダAを(移動するため

shutil.move('C:\Users\Student\Desktop\FolderA.txt', 'C:\Users\Student\Desktop\FolderB') 

しかし、私は経路が実際にはないことを知っているが存在しますtxtファイルを含む)をFolderB:

shutil.move('C:\Users\Student\Desktop\FolderA', 'C:\Users\Student\Desktop\FolderB') 

テキストファイルだけをコピーして移動する方法はありますか?私はあなたが知りたがっている場合に備えてPython Shell 2.7を使用しています。

+0

トレースバックエラーが何であるに1ずつそれらを移動FolderA内のすべてのtxtファイルをgrepするために 使用グロブモジュール?なぜあなたは 'FolderA.txt'が4つのテキストファイルに等しいと思いますか? 'fnmatch'や' glob'モジュールを調べたいかもしれません。 – AChampion

答えて

1

第一、このコマンドは、あなたが意図したものやっていません

以下のようにその生の文字列を示すために二重のバックスラッシュを使用するか、前にr''を追加するいずれか、正しくパス区切り文字をエスケープ、それはファイルを移動しようFolderA.txtをFolderBに呼び出します。

以下のコードは、あなたが意図したとおりに動作するはずです。その後、folderBの

import glob 
# this will move all txt file from FolderA into FolderB 
# but you need to ensure FolderB exists, else it might create a file named FolderB instead 
for f in glob.glob(r'C:\Users\Student\Desktop\FolderA\*.txt'): 
    shutil.move(f, r'C:\Users\Student\Desktop\FolderB') 
+0

シャッターモジュールを使用するだけですか? – YoungCoder

+0

これは私が使用を指示されているものです。 – YoungCoder

+1

それは可能かどうか分かりません。globモジュールを使用する代わりにos.listdir()を使用してすべてのファイルリストを取得できます。フィルタリングせずにフォルダ内のすべてを移動するには.txtファイルを使用し、次にshutil単独 – Skycc

0

Windowsパスを使用する場合は、二重バックスラッシュを使用する必要があります。そうしないと、次の文字がエスケープされ、IOError: [Errno 2] No such file or directory:...'が生成されます。私。

shutil.move('C:\\Users\\Student\\Desktop\\FolderA.txt', 'C:\\Users\\Student\\Desktop\\FolderB') 
+0

二重のバックスラッシュは私にも同じエラーを与えていることに注意してください。 – YoungCoder

関連する問題