1

Windowsに2つのフォルダーがあります。どちらも同じ名前のファイルですが、拡張子が異なります。これらの 2 つのフォルダーを比較しようとしています。同じ名前のファイルがある場合は、あるフォルダーから別のフォルダーにコピーする必要があります。

私はバッチ プログラムを使用してこれを実行しましたが、Python を使用してこれを実行したいと考えています。ここで検索して、いくつかの断片を取得しましたが、正しいかどうかわかりませんか? 皆さん、私を助けてくれませんか?

exm1=[os.path.splitext(x)[0] for x in os.listdir(r'\Path') if os.path.splitext(x)[1]=='.trn']
exm2=[os.path.splitext(x)[0] for x in os.listdir(r'\Path') if os.path.splitext(x)[1]=='.trn']  
4

2 に答える 2

2

拡張子のない基本名だけをリストするのにちょうどいい方法です。欠けているのは、欠けているものを検出することです。

ディレクトリ1のファイル名を簡単に再構築できる場合。たとえば、拡張子がすべて同じであるためです。次に、ここでセットを使用します。セットを使用すると、2 つのディレクトリの違いを簡単にリストできます。

import os.path
import shutil

source = r'\Path1'
dest = r'\Path2'

sourcefiles = {os.path.splitext(x)[0] for x in os.listdir(source) if os.path.splitext(x)[1] == '.ext1'}
destfiles = {os.path.splitext(x)[0] for x in os.listdir(source) if os.path.splitext(x)[1] == '.ext2'}

for missing in sourcefiles - destfiles:   # calculate the difference
    sourcefile = os.path.join(source, missing + '.ext1')
    destfile = os.path.join(dest, missing + '.ext2')
    shutil.copy(sourcefile, destfile)
于 2013-04-20T13:03:22.713 に答える