{"id":840096,"date":"2026-07-20T10:32:52","date_gmt":"2026-07-20T10:32:52","guid":{"rendered":"https:\/\/www.ninjaone.com\/?p=840096"},"modified":"2026-07-20T10:34:27","modified_gmt":"2026-07-20T10:34:27","slug":"come-verificare-se-un-file-esiste-con-python","status":"publish","type":"post","link":"https:\/\/www.ninjaone.com\/it\/blog\/come-verificare-se-un-file-esiste-con-python\/","title":{"rendered":"Come verificare se un file esiste con Python"},"content":{"rendered":"<div class=\"in-context-cta\"><h2 style=\"margin-top: 0px;\">Punti chiave<\/h2>\n<ul>\n<li>Verificare se un file esiste in Python \u00e8 fondamentale per creare flussi di lavoro affidabili di automazione e scripting.<\/li>\n<li>Python mette a disposizione diversi metodi della libreria standard per verificare l&#8217;esistenza di un file, tra cui os.path.exists(), os.path.isfile() e pathlib.Path.exists().<\/li>\n<li>os.path.exists() verifica se un percorso esiste, mentre os.path.isfile() verifica che il percorso sia un file normale.<\/li>\n<li>Il modulo pathlib offre un modo pi\u00f9 pulito e multipiattaforma per verificare la validit\u00e0 di file e directory in Python.<\/li>\n<li>I controlli sull&#8217;esistenza dei file dovrebbero essere utilizzati per il normale flusso di controllo, non per la gestione delle eccezioni.<\/li>\n<li>Le differenze tra i sistemi operativi, le autorizzazioni e i file system di rete possono influire sui controlli di esistenza dei file.<\/li>\n<\/ul>\n<\/div>\n<p>Verificare se un file esiste \u00e8 un&#8217;operazione standard negli script Python. Le attivit\u00e0 di automazione dipendono spesso da file di configurazione, log, installer o artefatti di output che possono essere presenti o meno al momento dell&#8217;esecuzione. Python offre agli MSP metodi diretti per verificare la presenza dei file in modo pulito e prevedibile. Comprendere questi metodi aiuta a ridurre gli errori e a migliorare l&#8217;affidabilit\u00e0 degli script.<\/p>\n<p>Puoi utilizzare\u00a0<strong>Python per verificare se un file esiste<\/strong> e, in questo modo, puoi verificare i prerequisiti prima di eseguire un&#8217;operazione, evitare di sovrascrivere file importanti, confermare che l&#8217;output sia stato generato correttamente e controllare il flusso dello script nelle pipeline di automazione.<\/p>\n<h2>Guida alla verifica dei file in Python<\/h2>\n<p>\ud83d\udccc<strong>Prerequisiti<\/strong>:<\/p>\n<ul>\n<li>\u00c8 necessario che sul tuo sistema sia installato\u00a0<a href=\"https:\/\/www.python.org\/downloads\/\" target=\"_blank\" rel=\"noopener\">Python<\/a>\u00a0.<\/li>\n<li>Devi avere gi\u00e0 almeno una conoscenza di base della sintassi di Python.<\/li>\n<li>Devi avere accesso al file system che desideri controllare.<\/li>\n<li>Devi avere una conoscenza di base della differenza tra percorsi relativi e assoluti.<\/li>\n<\/ul>\n<h3>Metodo 1: Utilizzando os.path.exists()<\/h3>\n<p>Questo \u00e8 il metodo pi\u00f9 semplice per verificare se un elemento \u00e8 presente nella tua directory. Ti permette di verificare se in quella posizione \u00e8 presente un file, una directory o un collegamento simbolico.<\/p>\n<p style=\"padding-left: 40px;\"><strong><code>import os<\/code><\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong><code>if os.path.exists(\"example.txt\"):<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print(\"Path exists\")<\/code><br \/>\n<\/strong><strong><code>else:<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print(\"File does not exist\")<\/code><\/strong><\/p>\n<p>&#8220;Example.txt&#8221; va sostituito con il file che stai cercando.<\/p>\n<p><strong>\ud83d\udca1Nota<\/strong>:\u00a0<strong>import os\u00a0<\/strong>importa il modulo OS integrato in Python, che ti consentir\u00e0 di interagire con il sistema operativo tramite Python. Se l&#8217;hai gi\u00e0 importato, puoi rimuoverlo dal codice.<\/p>\n<h3>Metodo 2: Utilizzando os.path.isfile() per i controlli relativi esclusivamente ai file<\/h3>\n<p>Se vuoi solo verificare se esiste un\u00a0<em>file\u00a0<\/em>, puoi invece utilizzare questo codice:<\/p>\n<p style=\"padding-left: 40px;\"><strong><code>import os<\/code><\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong><code>if os.path.isfile(\"example.txt\"):\u00a0<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print(\"Path exists\")<\/code><br \/>\n<\/strong><strong><code>else:<\/code><\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0print(\"File does not exist\")<\/code><\/strong><\/p>\n<p>&#8220;Example.txt&#8221; va sostituito con il file che stai cercando.<\/p>\n<p>\ud83d\udca1<strong>Note<\/strong>:\u00a0<strong>import os\u00a0<\/strong>` importer\u00e0\u00a0<a href=\"https:\/\/docs.python.org\/3\/library\/os.html\" target=\"_blank\" rel=\"noopener\">il modulo OS<\/a> integrato in Python, che ti consentir\u00e0 di interagire con il sistema operativo tramite Python. Se l&#8217;hai gi\u00e0 importato, puoi rimuoverlo dal codice.<\/p>\n<h3>Metodo 3: Utilizzando pathlib.Path.exists()<\/h3>\n<p><strong>pathlib<\/strong>\u00a0\u00e8 un modulo integrato in Python che offre un approccio orientato agli oggetti per gestire i percorsi del filesystem. Poich\u00e9 gestisce i percorsi come oggetti dotati di metodi utili, risulta pi\u00f9 pulito ed efficiente rispetto ai metodi precedenti.<\/p>\n<p style=\"padding-left: 40px;\"><strong><code>from pathlib import Path<\/code><\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong><code>file_path = Path(\"example.txt\")<\/code><br \/>\n<\/strong><strong><code>if file_path.exists():<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0print(\"Path exists\")<\/code><br \/>\n<\/strong><strong><code>else:<\/code><\/strong><\/p>\n<p style=\"padding-left: 40px;\"><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 print(\"Path does not exist\")<\/code><\/strong><\/p>\n<p>&#8220;Example.txt&#8221; va sostituito con il file che stai cercando.<\/p>\n<p>\ud83d\udca1<strong>Nota<\/strong>: Questo ti mostrer\u00e0 solo se un percorso esiste. Non fa distinzione tra un file, una directory o un collegamento.<\/p>\n<p>\ud83d\udca1<strong>Nota<\/strong>:<strong>\u00a0import Path\u00a0<\/strong>importer\u00e0 il <a href=\"https:\/\/docs.python.org\/3\/library\/os.html\" target=\"_blank\" rel=\"noopener\">modulo OS<\/a> integrato in Python, che ti consentir\u00e0 di interagire con il sistema operativo tramite Python. Se l&#8217;hai gi\u00e0 importato, puoi rimuoverlo dal codice.<\/p>\n<h4>Distinguere file e directory con pathlib<\/h4>\n<p><strong>file_path.exists()\u00a0<\/strong>serve solo a verificare se un percorso di file esiste. Non fa distinzioni tra file, percorsi o directory. Se vuoi fare questa distinzione, usa i seguenti comandi:<\/p>\n<ul>\n<li><strong>.is_file() &#8211; <\/strong>Questa funzione verifica solo la presenza di file nel sistema.<\/li>\n<li><strong>.is_dir() &#8211;\u00a0<\/strong>Questa funzione verifica solo la presenza di directory nel sistema.<\/li>\n<\/ul>\n<h4>Evita i controlli di esistenza dei file basati sulle eccezioni<\/h4>\n<p>In Python \u00e8 anche possibile utilizzare controlli di esistenza dei file basati sulle eccezioni, in questo modo:<\/p>\n<p style=\"padding-left: 40px;\"><strong><code>try:<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0with open(\"example.txt\") as f:<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 data = f.read()<\/code><br \/>\n<\/strong><strong><code>except FileNotFoundError:<\/code><br \/>\n<\/strong><strong><code>\u00a0 \u00a0 \u00a0 \u00a0print(\"File does not exist\")<\/code><\/strong><\/p>\n<p>Tuttavia, ci\u00f2 pu\u00f2 risultare pi\u00f9 complicato e pi\u00f9 difficile da leggere. I controlli basati sulle eccezioni dovrebbero essere utilizzati solo quando si ha a che fare con errori imprevisti. Altrimenti, \u00e8 meglio ricorrere innanzitutto ai controlli basati sull&#8217;esistenza, se si desidera migliorare la leggibilit\u00e0 e la prevedibilit\u00e0 del codice.<\/p>\n<h2>Altri aspetti da tenere in considerazione quando verifichi l&#8217;esistenza di un file tramite Python<\/h2>\n<ul>\n<li>I percorsi relativi dipendono dalla directory di lavoro dello script.<\/li>\n<li>I collegamenti simbolici possono comportarsi in modo diverso a seconda del metodo utilizzato per individuarli.<\/li>\n<li>Le autorizzazioni dei file possono influire sull&#8217;accesso anche se il file esiste. Assicurati di avere accesso all&#8217;intera directory quando esegui questi controlli.<\/li>\n<li>I file system di rete possono presentare latenza o comportamenti legati alla cache. Ci\u00f2 pu\u00f2 influire sui risultati ottenuti.<\/li>\n<li>La distinzione tra maiuscole e minuscole varia a seconda del sistema operativo. Tienilo presente quando esegui i tuoi comandi Python.<\/li>\n<\/ul>\n<h2>Risoluzione dei problemi durante la verifica dei file in Python<\/h2>\n<table>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><strong>Problema<\/strong><\/td>\n<td style=\"text-align: center;\"><strong>Soluzione<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Il file esiste, ma Python dice che non c&#8217;\u00e8.<\/td>\n<td>Assicurati di inserire il percorso e la directory del file corretti.<\/td>\n<\/tr>\n<tr>\n<td>Lo script si comporta in modo diverso su un altro sistema operativo.<\/td>\n<td>Verifica i separatori di percorso e la distinzione tra maiuscole e minuscole.<\/td>\n<\/tr>\n<tr>\n<td>Si verificano errori di autorizzazione durante l&#8217;esecuzione di un controllo di esistenza.<\/td>\n<td>Assicurati di disporre dei diritti di accesso appropriati.<\/td>\n<\/tr>\n<tr>\n<td>Ti stai imbattendo in \u201crace condition\u201d.<\/td>\n<td>Il file che stai cercando potrebbe essere stato eliminato oppure potrebbe essere stato creato durante i controlli di esistenza.<\/td>\n<\/tr>\n<tr>\n<td>Si stanno verificando dei malfunzionamenti nel sistema di automazione.<\/td>\n<td>Documenta i percorsi e i controlli di visibilit\u00e0.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Sfrutta al massimo gli script Python con gli strumenti NinjaOne<\/h2>\n<p>La suite di\u00a0<a href=\"https:\/\/www.ninjaone.com\/it\/rmm\/automazione-degli-script\/\">strumenti<\/a> di NinjaOne pu\u00f2 supportare l\u2019<a href=\"https:\/\/www.ninjaone.com\/it\/blog\/definizione-degli-script-di-automazione-it-e-panoramica\/\">automazione<\/a>\u00a0basata su Python, consentendo agli MSP di eseguire script che verificano la presenza dei file prima dell&#8217;esecuzione. I controlli di esistenza dei file possono essere utilizzati per verificare la disponibilit\u00e0 di un installer, controllare i file di configurazione o assicurarsi che siano stati generati i risultati degli script. In combinazione con la gestione centralizzata degli script e dei report, ci\u00f2 migliora l&#8217;affidabilit\u00e0 su tutti gli endpoint gestiti.<\/p>\n<h2>Ottieni il massimo dai tuoi script Python con i controlli di esistenza dei file<\/h2>\n<p>Verificare se un file esiste \u00e8 un passaggio fondamentale nella scrittura di script Python affidabili. Utilizzando metodi della libreria standard come os.path e pathlib, gli sviluppatori e i team IT possono evitare errori inutili e creare flussi di lavoro di automazione prevedibili. Scegliere il metodo corretto in base al tipo di file e al contesto garantisce che gli script funzionino correttamente in tutti gli ambienti.<\/p>\n<p><strong>Articoli correlati:<\/strong><\/p>\n<ul>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/verificare-la-presenza-di-file-in-linux\/\">Guida completa: Come utilizzare uno script Linux per verificare la presenza di file o cartelle<br \/>\n<\/a><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/limitare-python-in-excel-powershell\/\">Come limitare l&#8217;accesso a Python in Microsoft Excel tramite PowerShell<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/verificare-la-presenza-di-file-powershell\/\">Come utilizzare uno script PowerShell per verificare la presenza di file o cartelle in Windows<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/verificare-la-presenza-di-file-su-macos\/\">Come automatizzare il controllo dell&#8217;esistenza di file e cartelle su macOS<\/a><\/li>\n<li><a href=\"https:\/\/www.ninjaone.com\/it\/script-hub\/verifica-degli-hash-dei-file-con-powershell\/\">Come utilizzare PowerShell per la verifica dell&#8217;hash dei file nella sicurezza IT<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Verificare se un file esiste \u00e8 un&#8217;operazione standard negli script Python. Le attivit\u00e0 di automazione dipendono spesso da file di configurazione, log, installer o artefatti di output che possono essere presenti o meno al momento dell&#8217;esecuzione. Python offre agli MSP metodi diretti per verificare la presenza dei file in modo pulito e prevedibile. Comprendere questi [&hellip;]<\/p>\n","protected":false},"author":224,"featured_media":752090,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"no","_lmt_disable":"","footnotes":""},"categories":[4354],"tags":[],"class_list":["post-840096","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operazioni-it"],"acf":[],"modified_by":"Sergio Oricci","_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/840096","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/users\/224"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/comments?post=840096"}],"version-history":[{"count":2,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/840096\/revisions"}],"predecessor-version":[{"id":840098,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/posts\/840096\/revisions\/840098"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media\/752090"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/media?parent=840096"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/categories?post=840096"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ninjaone.com\/it\/wp-json\/wp\/v2\/tags?post=840096"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}