/
Alexander-Golyshkin
/
LinuxTools
Обзор
Документация
Войти
/
Alexander-Golyshkin
/
LinuxTools
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
msgToTxt.py
66 строк
2 KB
Alexander.Golyshkin
Initial Commit
28 апр 2025, 11:26
28 апр 2025, 11:26
49f7678
Код
Авторство
О чём код?
#!/usr/bin/python3 """ MSG to TXT converter. Requirements: pip install extract-msg Alexander.Golyshkin (c) 2024 MTS-Digital """ import sys import extract_msg import argparse import quopri import re def main(aMsgFileName: str) -> None: """ Start processing a MSG -> TXT format. :param aMboxFileName: MSG file path :return: void """ msg = extract_msg.Message(aMsgFileName) fileName: str = f"{sys.argv[1]}.txt" msg_sender = quopri.decodestring(bytes(msg.sender.replace("<", "<"), 'UTF-8')).decode('UTF-8').replace("=?UTF-8?Q?", "").replace("?=", "").replace("_?", "").replace("? ", "").replace("? ", "") msg_date = msg.date msg_subj = msg.subject msg_message = msg.body msg_converted: str = "" msg.close() for msg in msg_message.split(" >"): msg_converted += re.sub("<mailto:.*>", "", msg) if len(msg_converted) == 0: msg_converted = msg_message msg_converted = msg_converted.replace("\r\n\r\n", "\r\n") with open(fileName, mode='w', encoding="UTF-16") as file: file.write(f'Sender: {msg_sender}\n') file.write(f'Sent: {msg_date}\n') file.write(f'Subject: {msg_subj}\n\n') file.write(f'{msg_converted}\n') def help() -> None: """ Display Help Message :return: void """ parser = argparse.ArgumentParser(sys.argv[0]) parser.add_argument("MSG file", help="A path to MS Outlook MSG file which required to convert to TXT format", type=str) args = parser.parse_args() print(args.counter + 1) if __name__ == '__main__': if len(sys.argv) == 1 or sys.argv[1] == "-h" or sys.argv[1] == "--help": help() else: main(sys.argv[1])