Я пытаюсь открыть защищенные паролем книги Excel и нашел код, который я разместил ниже на этой странице , но когда я пытаюсь это сделать, я получаю sytaxError
и indentationEorror
xlpassword.py
import xlwings as xw
from autoit.autoit import AutoItError
import autoit
import threading
class _WB(object):
def __init__(self, path, password=None):
self.path = path
self.password = password
self.name = path
@staticmethod
def _handlepassword(password):#this line is giving the error
if password:
autoit.win_wait_active("[TITLE:Excel]", 5)
autoit.send(password)
autoit.send("{ENTER}")
def op(self):
try: # If already opened
autoit.win_activate("%s - Excel"%self.name)
self.book = xw.Book(self.path)
except AutoItError: # Else
t = threading.Thread(target=self._handlepassword, args=(self.password,))
t.start()
self.book = xw.Book(self.path)
t.join()
finally:
return self
def _wait(self):
autoit.win_wait_active("%s - Excel"%self.name, 1)
def close(self):
self._wait()
self.book.close()
autoit.win_close("Excel")
, когда я добираюсь до линии def _handlepassword
, я получаю вывод
SyntaxError: unexpected EOF while parsing (<string>, line 1)
IndentationError: unexpected indent (<string>, line 1)
Что означает, что когда Я импортирую xlpassword.py
в другой сценарий python, новый сценарий не запускается
test_run.py
import pandas as pd
from xlpassword import * #I know this isn't best practice
PATH = "C:\\Path\\to\\my\\file.xlsx"
print(PATH)
wb = _WB(path=PATH, password='MyP8ssw0rd')
Я использую python 3.8 .1 на компьютере windows 10, и я попытался запустить код в spyder, sublime и Rstudio (я обычно работаю в Rstudio, но подумал, что это может быть причиной проблемы.)
I Я читал о классах, методах классов и методах stati c, и я не вижу, что я делаю здесь неправильно, поэтому, если кто-то сможет оказать помощь, это очень поможет.