Как проверять, что файл существовал в Пайтоне?

Используя Пайтон: как я проверяю, существует ли файл?, не используя решения try.

Первоначальный вопрос:

4
задан 23.05.2017, 15:39
4 ответа

Ты можешь использовать os.path.isfile:

Возвратись True если маршрут - регулярный существующий файл. Продолжи символические соединения, таким образом что islink() и isfile() они могут быть истинными для того же маршрута.

import os.path
os.path.isfile(fname) 

Если ты нуждаешься в том, чтобы быть уверен, что это файл.

Первоначальный ответ:


Ты можешь использовать метод, показанный из-за @campussano используя os.path.exists():

import os.path as path

if path.exists(file):
   # código

Различие с isfile() дело что os.path.exists() он возвратится True для файлов и папок


Ты можешь использовать метод, представленный из-за @toledano используя модуль unipath, который не приходит включая в Пайтоне и необходим устанавливать заблаговременно:

$ pip install unipath

Пример:

from unipath import Path
f = Path('ejemplo.txt')
f.exists()

В общем использование unipath.Path он делается мне более простым, чем os.path, прежде всего во время создания маршрутов.

# con os.path
os.path.join(A, B)

# con unipath.Path
Path(A, B)
12
ответ дан 01.12.2019, 08:16
  • 1
    Эта быть должным и # 237; чтобы быть получающим ответом – Luis Masuelli 06.12.2015, 17:41
  • 2
    @LuisMasuelli просвет, это wiki, я централизую ответы dem и # 225; s – César 06.12.2015, 17:42
  • 3
    est и # 225; n помещая, когда мигрируя вручную вопросы и ответы сайта на английском? Он мне кажется теоретически хорошим но практически очень тяжелым и длинным xD. – Luis Masuelli 06.12.2015, 17:43
  • 4
    @LuisMasuelli, так как какие-то направили половину fren и # 233; костариканские с темой, он им не нравится и они дают ему-1, я думаю, что он необходим, идея состоит в том, чтобы производить основание знания в этом сайте. Есть люди, которые не говорят или пишут в ingl и # 233; s, но они, кажется, не понимают это – César 06.12.2015, 17:45
  • 5
    Я заканчиваюсь у тебя upvotear из-за усилия, и потому что вопрос достаточно полезный. Но только я могу давать upvote. – Luis Masuelli 06.12.2015, 17:45

Я думаю, что tambiГ©n ты можешь использовать:

import os.path as path
if (path.exists(file)):
   #todo::
7
ответ дан 01.12.2019, 08:16
  • 1
    Различие состоит в том, что exists() возвращает True tambi и # 233; n для папок. Но он v и # 225; lido. Другая точка, в Пайтоне не является необходимым использование пары и # 233; ntesis в решениях if – César 06.12.2015, 17:14
  • 2
    Идет. Спасибо. – campussano 06.12.2015, 20:56

Модуль Unipath также у него есть метод .exists().

from unipath import Path
f = Path('ejemplo.txt')
f.exists()

В общем использование unipath.Path он делается мне более простым, чем os.path, прежде всего во время создания маршрутов.

# con os.path
os.path.join(A, B)

# con unipath.Path
Path(A, B)
5
ответ дан 01.12.2019, 08:16
  • 1
    Спасибо! Не conoc и # 237; в этот librer и # 237; в – César 06.12.2015, 17:23

Дополняя ответы, это форма, в которой я проверяю, существовал файл в Python:

import os
if os.path.isfile(archivo):

isFile() возвращает true с файлами или каталогами.

os.path.isfile(path)

Возвращает true, если маршрут - существующий файл. Это продолжает ссылки simbГіlicos, следовательно IsLink () и isfile () может быть истинным для того же маршрута.

1
ответ дан 01.12.2019, 08:16
  • 1
    Елена, isfile() не функционирует для каталогов, только для файлов – César 06.12.2015, 22:35
  • 2
    я имею в виду, что возвращается true для каталогов. – Jorgesys♦ 06.12.2015, 22:37
  • 3
    В Linux os.path.isfile('/') возврати False – César 06.12.2015, 22:40