我正在尝试检查文件是否存在,如果它确实存在,我想通过尝试重命名来检查它是否已打开。 except块尝试使用os.close关闭打开的文件。当我尝试关闭文件时,我得到“TypeError:需要一个整数”。
import os
filepath = "C:\Users\oneilp6\Desktop"
file1 = filepath + "\\HelpFile.docx"
file2 = filepath + "\\HelpFile2.docx"
if os.path.exists(file1):
try:
os.rename(file1,file2)
except:
os.close(file1)
任何人有任何想法或想法?我试图关闭一个在MS Word中实际打开的word文档。有没有办法做到这一点?
答案 0 :(得分:1)
您正在检查文件是否由计算机上的其他应用程序打开。如果是的话,这个程序可以做很多事情。您无法关闭其他程序的文件。你可能潜在地追捕那个程序并杀死它,但即使这样也不容易。 https://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows有一些建议。
答案 1 :(得分:0)
except
中没有打开任何文件。所以不需要调用os.close()。
https://docs.python.org/2/library/os.html#os.rename
os.close()此函数适用于低级I / O,必须是 应用于os.open()或pipe()返回的文件描述符。至 关闭内置函数open()或by返回的“文件对象” popen()或fdopen(),使用它的close()方法。