J'ai un fichier pst et je veux l'ouvrir avec python, comment puis-je faire?
J'essaye cette bibliothèque mais ne fonctionne pas.
mon code est:
----------All error text:----------------- To use this function you must install 'msgconvert' tool Traceback (most recent call last): File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 229, in msgconvert stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__ restore_signals, start_new_session) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The system cannot find the file specified Traceback (most recent call last): File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 229, in msgconvert stdout=subprocess.PIPE, stderr=subprocess.DEVNULL) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 775, in __init__ restore_signals, start_new_session) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\subprocess.py", line 1178, in _execute_child startupinfo) FileNotFoundError: [WinError 2] The system cannot find the file specified During handling of the above exception, another exception occurred: Traceback (most recent call last): File "D:/Drive D/my projects/azar/untitled java 13 12 2019/Pst mail.py", line 3, in <module> mail=mailparser.parse_from_file_msg('C:/Users/aa/Documents/1.pst') File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\mailparser.py", line 89, in parse_from_file_msg return MailParser.from_file_msg(fp) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\mailparser.py", line 203, in from_file_msg f, _ = msgconvert(fp) File "C:\Users\aa\AppData\Local\Programs\Python\Python37-32\lib\site-packages\mailparser\utils.py", line 234, in msgconvert raise MailParserOSError(message) mailparser.exceptions.MailParserOSError: To use this function you must install 'msgconvert' tool -----------------------------------
mais obtenez cette erreur: mailparser.exceptions. MailParserOSError: Pour utiliser cette fonction, vous devez installer l'outil 'msgconvert'
import mailparser mail = mailparser.parse_from_bytes(byte_mail) mail = mailparser.parse_from_file('c/document/1.pst') print(mail.attachments) #list of all attachments
3 Réponses :
Vous devez exécuter le script python dans un environnement Linux uniquement.
Vous devez installer le package Linux en utilisant la commande suivante:
$ apt-get install libemail-outlook-message-perl
Veuillez lire la description sur le lien ci-dessous: https://pypi.org/project/mail-parser/
ma solution: Je convertis le fichier .pst en fichier .msg et le lis avec python (avec l'application: BitRecover PST Converter Wizard 10.6).
import extract_msg msg = extract_msg.Message("C:/Users/aa/Documents/delete/Untitled.msg") print(msg.attachments)`
Non, je trouve mieux cela jusqu'à présent.
Celui-ci semble fonctionner, https://pypi.org/project/libratom/
from libratom.lib.pff import PffArchive from email import generator from pathlib import Path archive = PffArchive("bill_rapp_000_1_1.pst") eml_out = Path(Path.cwd() / "emls") if not eml_out.exists(): eml_out.mkdir() print("Writing messages to .eml") for folder in archive.folders(): if folder.get_number_of_sub_messages() != 0: for message in folder.sub_messages: name = message.subject.replace(" ", "_") name = name.replace("/","-") filename = eml_out / f"{message.identifier}_{name}.eml" filename.write_text(archive.format_message(message)) print("Done!")
Cela ne résout pas l'erreur que vous obtenez, mais peut toujours être utile: stackoverflow.com/q/3197388/2422776
Ce serait formidable si tous les messages d'erreur donnent des instructions pour résoudre le problème comme le vôtre.
Mettre à jour. s'il vous plaît donnez-moi un exemple avec un vrai fichier.
ma solution: je convertis le fichier pst en fichier .msg et le lis avec python. `import extract_msg msg = extract_msg.Message (" C: /Users/aa/Documents/delete/Untitled.m sg ") print (msg.attachments)`
essayez libpff-python- github.com/libyal/libpff