这段代码是我第一次尝试创建一个程序。运行时发生错误:如何从目录中获取每个扩展名的文件?我写了一个代码,但我得到一个例外
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'C:\Users\gabri\Desktop\' -> 'C:\Users\gabri\Desktop\Planilhas Excel\'
我在做什么错?这个程序的目标是获得所有的excel,然后是pdf,然后是word文件,并将它们放在程序创建的文件夹中。
import os
from glob import glob
# import cx_Freeze
print("Digite o diretório de origem.")
dirOrigem = input()
os.chdir(dirOrigem)
excel_files = glob('*.xlsx')
excel_files.append(''.join(glob('*.xls')))
dirDestinoXL = dirOrigem + '\\' + 'Planilhas Excel'
if not os.path.exists(dirDestinoXL):
os.makedirs(dirDestinoXL)
for i in excel_files:
os.rename(f'{dirOrigem}\\{"".join(i)}', f'{dirDestinoXL}\\{"".join(i)}')
os.chdir(dirOrigem)
pdf_files = glob('*.pdf')
dirDestinoPDF = dirOrigem + '\\' + 'PDF'
if not os.path.exists(dirDestinoPDF):
os.makedirs(dirDestinoPDF)
for p in pdf_files:
os.rename(f'{dirOrigem}\\{"".join(p)}', f'{dirDestinoPDF}\\{"".join(p)}')
os.chdir(dirOrigem)
word_files = glob('*.doc')
word_files.append(glob('*.docx'))
dirDestinoWord = dirOrigem + '\\' + 'Word'
if not os.path.exists(dirDestinoWord):
os.makedirs(dirDestinoWord)
for d in word_files:
os.rename(f'{dirOrigem}\\{"".join(d)}', f'{dirDestinoWord}\\{"".join(d)}')
如果任何这些文件在任何其他进程中打开,则关闭它们并重试。 – Antimony
'excel_files = glob('*。xlsx') excel_files.append(''。join(glob('*。xls'))) 'excel_files是否包含正确的excel文件?也许是空的列表。 – deaspo
删除:excel_files.append(''。join(glob('*。xls')))它工作正常。你正在追加一个空白部分,所以你的列表看起来像[''],然后你的for循环尝试修改''它不能。 –