PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: '12.session'
Прописываю, код telethon, щас делаю авторизацию аккаунта и нужно было обработать ошибки, сделал автоматическое удаление ссесии если там вылетает какая либо ошибка, но ссесия не удаляется а попросту остается и в терминале выдает ошибку
async def start_login_process(user_id, phone_number, conv):
session_name = f"{phone_number}.session"
client = TelegramClient(session_name, api_id, api_hash)
await client.connect()
try:
if not await client.is_user_authorized():
await client.send_code_request(phone_number)
message = await conv.send_message('Введите код из сообщения')
update_message_id(user_id, message.id)
code = await conv.get_response()
await complete_login(user_id, client, phone_number, code.text, conv)
except PhoneNumberInvalidError:
message1 = await conv.send_message('Код подтверждения устарел. Пожалуйста, запросите новый код и попробуйте снова.')
update_message_id(user_id, message1.id)
if os.path.exists(session_name):
os.remove(session_name)
except SessionPasswordNeededError:
message2 = await conv.send_message('Отключите двухфакторную аутентификацию и попробуйте снова.')
update_message_id(user_id, message2.id)
if os.path.exists(session_name):
os.remove(session_name)
except PhoneCodeExpiredError:
message4 = await conv.send_message('Устройство с помощью которого вы пытаетесь войти по номеру телефона'
'является временно индексированным конкретно для этого номера'
'попробуйте позже или воспользуйтесь другим устройством')
update_message_id(user_id, message4.id)
if os.path.exists(session_name):
os.remove(session_name)
except Exception as e:
message3 = await conv.send_message(f'Ошибка при добавлении аккаунта: {str(e)}')
update_message_id(user_id, message3.id)
if os.path.exists(session_name):
os.remove(session_name)
finally:
client.disconnect()
async def complete_login(user_id, client, phone_number, code, conv):
try:
await client.sign_in(phone_number, code)
session_name = f"{phone_number}.session"
session_str = client.session.save() # Сохранение сессии
random_session = session_generate()
add_account(user_id, phone_number, "False", random_session)
account_update("True", random_session)
message = await conv.send_message('Аккаунт успешно добавлен')
all_messages = get_message_from_profile(user_id)
await delete_messages(user_id, all_messages)
update_message_id(user_id, message.id)
await accounts_button(user_id, conv) # Await the coroutine here
except PhoneNumberInvalidError:
message1 = await conv.send_message('Код подтверждения неверен. Пожалуйста, попробуйте снова.')
all_messages = get_message_from_profile(user_id)
await delete_messages(user_id, all_messages)
update_message_id(user_id, message1.id)
if os.path.exists(session_name):
os.remove(session_name)
except PhoneCodeExpiredError:
message4 = await conv.send_message('Устройство с помощью которого вы пытаетесь войти по номеру телефона'
'является временно индексированным конкретно для этого номера'
'попробуйте позже или воспользуйтесь другим устройством')
update_message_id(user_id, message4.id)
except SessionPasswordNeededError:
message2 = await conv.send_message('Отключите двухфакторную аутентификацию и попробуйте снова.')
all_messages = get_message_from_profile(user_id)
await delete_messages(user_id, all_messages)
update_message_id(user_id, message2.id)
if os.path.exists(session_name):
os.remove(session_name)
except Exception as e:
message3 = await conv.send_message(f'Ошибка при добавлении аккаунта: {str(e)}')
all_messages = get_message_from_profile(user_id)
await delete_messages(user_id, all_messages)
update_message_id(user_id, message3.id)
if os.path.exists(session_name):
os.remove(session_name)
finally:
await client.disconnect()
Traceback (most recent call last): File "C:\Users\nurbe\OneDrive\Документы\parserchats\venv\Lib\site-packages\telethon\client\updates.py", line 570, in _dispatch_update await callback(event) File "C:\Users\nurbe\OneDrive\Документы\parserchats\main.py", line 443, in callback await start_login_process(user_id, phone_number.text, conv) File "C:\Users\nurbe\OneDrive\Документы\parserchats\main.py", line 604, in start_login_process os.remove(session_name) PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: '12.session'