In meiner Anwendung schreibe ich in eine Exceldatei. Nach dem Schreiben kann der Benutzer die Datei anzeigen, indem er sie öffnet. Wenn der Benutzer jedoch vergisst, die Datei vor dem weiteren Schreiben zu schließen, sollte eine Warnmeldung erscheinen. Ich brauche also eine Möglichkeit, um zu prüfen, ob die Datei vor dem Schreibvorgang geöffnet ist. Könnten Sie mir einen Python-Code zur Verfügung stellen, der diese Aufgabe erfüllt?
Antworten
Zu viele Anzeigen?
jabba
Punkte
445
Verwendung von
try:
with open("path", "r") as file:#or just open
kann zu Problemen führen, wenn die Datei von anderen Prozessen geöffnet wird (z. B. wenn der Benutzer sie manuell öffnet). Sie können Ihr Problem mit der win32com-Bibliothek lösen. Der folgende Code prüft, ob Excel-Dateien geöffnet sind, und öffnet eine neue, wenn keine von ihnen mit dem Namen der betreffenden Datei übereinstimmt.
import win32com.client as win32
xl = win32.gencache.EnsureDispatch('Excel.Application')
my_workbook = "wb_name.xls"
xlPath="my_wb_path//" + my_workbook
if xl.Workbooks.Count > 0:
# if none of opened workbooks matches the name, openes my_workbook
if not any(i.Name == my_workbook for i in xl.Workbooks):
xl.Workbooks.Open(Filename=xlPath)
xl.Visible = True
#no workbooks found, opening
else:
xl.Workbooks.Open(Filename=xlPath)
xl.Visible = True
'xl.Visible = True is not necessary, used just for convenience'
Ich hoffe, das hilft
Dexter
Punkte
759
ADITYA JYOTI
Punkte
44
- See previous answers
- Weitere Antworten anzeigen