私はPython 2で作業していますが、このエラーに関するいくつかの投稿、つまりthis postを読んでいます。 しかし、まだエラーが発生しています。 私は何ですか: ディレクトリ内のファイルを読み込みます。特定の文字列が含まれているファイルがあれば、そのディレクトリを削除します。python 2 [エラー32]プロセスが別のプロセスで使用されているため、ファイルにアクセスできません。
def select_poo():
path = os.walk('/paila_candonga/')
texto = 'poo'
extension = '.tex'
for root, dirs, files in path:
for documento in files:
if extension in documento:
with open(os.path.join(root, documento), 'r') as fin:
for lines in fin:
if texto in lines:
shutil.rmtree(root)
else:
continue
その後、私はエラーを取得する:
WindowsError: [Error 32] The process cannot access the file because it is being used by another process
私も絶対パスを使用して試してみました:
def select_poo():
path = os.walk('/paila_candonga/')
texto = 'poo'
extension = '.tex'
for root, dirs, files in path:
for documento in files:
if extension in documento:
with open(os.path.join(root, documento), 'r') as fin:
for lines in fin:
if texto in lines:
route = (os.path.join(root, documento))
files = os.path.basename(route)
folder = os.path.dirname(route)
absolut= os.path.dirname(os.path.abspath(route))
todo = os.path.join(absolut, files)
print todo
else:
continue
それから私が得る:
C:\paila_candonga\la_Arepa.tex
C:\paila_candonga\sejodio\laOlla.tex
C:\paila_candonga\sejodio\laPaila.tex
た場合、私は同じ絶対パスを使用して、一度に1つのファイルを削除するd os.remove( '')、私は問題がありません。 select_poo()とshutil.rmtree(folder)またはos.remove(absolut)を使って一度にすべてのファイルを削除しようとすると、エラー32が発生します。
それぞれの方法でループを実行できますかtodoのパスを削除してエラー32を発生させずに削除しますか?それはここで起こる
ありがとうアレックス、それはありません仕事。エラーがまだ残っています=( –
@Chüngelこのフォルダや他のアプリケーションで開かれているこのフォルダのファイルを持っていないと確信していますか? – Alex
Alex、私はPythonでかなり新しいですが、 .remove(absolut)同じファイルがエラーなく削除されるので、エラーは、同時にすべてのファイルを削除している間にプロセスが原因で発生したと考えられます。文字列がドキュメントにあり、パスがxに追加されます。次にwithステートメントの外側で、os.remove(x [0])を実行しますが、次に同じエラーが発生します。私のコードはあなたのアイデアに基づいていますか? –