1
我已經創建了一個腳本來根據特定條件重命名文件夾中的文件。在做任何事之前檢查文件是否打開
if len(self.toLoc.get()) == 0:
searchRev = "_R" + newRev
for filename in os.listdir(App.pdfDir):
try:
filePath, fileExtension = os.path.splitext(filename)
sep = searchesri
rest = filename.split(sep, 1)[0] + searchRev + fromLocation + fileExtension
if fileExtension == '.pdf':
shutil.move(os.path.join(App.pdfDir, filename), os.path.join(App.pdfDir, rest))
elif fileExtension == '.xlsx':
shutil.move(os.path.join(App.pdfDir, filename), os.path.join(App.pdfDir, rest))
except IOError:
print ("Errror")
我想使用嘗試,除了在做任何重命名之前查看文件是否打開。截至目前,如果文件已打開,程序會吐出「錯誤」消息並重命名該文件,但在目錄中保留原件的副本。我希望有一種方法可以在啓動重命名過程之前檢查是否有任何文件已打開?感謝您的任何建議。
這不可靠,因爲檢查後可能會打開一個文件。 – Barmar
您是否可以(或需要)這取決於您的操作系統。假設POSIX語義,這是不必要的,因爲文件可以有多個名稱,所以打開的文件句柄不依賴於文件的名稱。多個進程可以一次打開一個文件以便讀取(甚至可能用於寫入,但必須小心協調寫入)。重命名打開的文件不應該影響已經在其他進程中打開的文件句柄。 – chepner
[檢查一個文件是否在Python中打開]可能的重複(http://stackoverflow.com/questions/6825994/check-if-a-file-is-open-in-python) –