2013-07-19 1 views
23

Sono curioso quando queste due funzioni restituiranno valori diversi. Inoltre, se si potesse chiarire la differenza tra un percorso/directory/file che sarebbe apprezzato.Differenza tra os.path.exists e os.path.isfile in python

+2

'os.path.isfile' restituirà false se l'argomento non è un file: vale a dire, è una directory o non esiste. – 2rs2ts

+3

os.path.exists restituisce se è un percorso valido (verifica la presenza di directory o file, entrambi) e os.path.isfile restituisce se è un file. quindi, quando os.path.isfile è True, os.path.exists anche True e quando os.path.exists è False, os.path.isfile è anche False. spero che questo ti faccia capire. Saluti ! :) – rnbcoder

risposta

1

Una directory verifica true per esiste, ma false per isfile. Esistono alcuni tipi diversi di oggetti del filesystem per i quali è anche vero.

isfile indica che si tratta di un file normale. È più specifico di quello che esiste.

22

Come avete già scoperto, la differenza tra exists e isfile è il fatto che gli ex rendimenti True nel caso in cui il percorso dato è una directory o un file, mentre il secondo restituisce solo True se il percorso punta a un file.

directory e file sono molto simili dal punto di vista tecnico. Un file può contenere qualsiasi tipo di dati. Una directory è solo una voce speciale nel file system (almeno sui sistemi operativi Unix è solo un file speciale) che rappresenta il fatto che potrebbe contenere file e altre directory. È un mezzo utile per costruire una struttura dati. Usando le directory, puoi organizzare i tuoi dati in una struttura gerarchica.

Soprattutto nel mondo Windows, le directory sono spesso denominate "cartelle". Sono sicuro che tu stesso stai usando "cartelle" per organizzare i tuoi file.

A percorso è un puntatore non ambiguo a una risorsa nel file system. Può indicare un file o una directory.

+1

Quindi se isfile (x) restituisce true, esiste (x) restituisce true ogni volta? –

+1

Sì, 'isfile (path) == True' implica' exists (path) == True'. –