Jak znaleźć czy katalog istnieje w Pythonie
W module os
w Pythonie, czy istnieje sposób na znalezienie katalogu, coś w stylu:
>>> os.direxists(os.path.join(os.getcwd()), 'new_folder')) # in pseudocode
True/False
10 answers
Szukasz os.path.isdir
, lub os.path.exists
jeśli nie obchodzi cię, czy to plik, Czy katalog.
Przykład:
import os
print(os.path.isdir("/home/el"))
print(os.path.exists("/home/el/myfile.txt"))
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-02-26 13:32:41
Tak blisko! os.path.isdir
zwraca True
Jeśli podasz nazwę katalogu, który aktualnie istnieje. Jeśli nie istnieje lub nie jest katalogiem, to zwraca False
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 21:08:08
Tak, użyj os.path.exists()
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 21:06:12
Python 3.4 wprowadził Moduł pathlib
do biblioteki standardowej, który zapewnia obiektowe podejście do obsługi ścieżek systemu plików:
In [1]: from pathlib import Path
In [2]: p = Path('/usr')
In [3]: p.exists()
Out[3]: True
In [4]: p.is_dir()
Out[4]: True
In [5]: q = p / 'bin' / 'vim'
In [6]: q.exists()
Out[6]: True
In [7]: q.is_dir()
Out[7]: False
Pathlib jest również dostępny w Pythonie 2.7 za pośrednictwem modułu pathlib2 na PyPi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 14:12:20
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 21:08:15
Możemy sprawdzić za pomocą 2 wbudowanych funkcji
os.path.isdir("directory")
Da boolean true Podany katalog jest dostępny.
os.path.exists("directoryorfile")
Da boolead true, jeśli Podany katalog lub plik jest dostępny.
Aby sprawdzić, czy ścieżka jest katalogiem;
os.path.isdir("directorypath")
Da wartość logiczną true, jeśli ścieżka jest katalogiem
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-26 13:44:15
Jak w:
In [3]: os.path.exists('/d/temp')
Out[3]: True
Prawdopodobnie wrzucić os.path.isdir(...)
dla pewności.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-01-19 21:07:31
System operacyjny zapewnia wiele z tych możliwości:
import os
os.path.isdir(dir_in) #True/False: check if this is a directory
os.listdir(dir_in) #gets you a list of all files and directories under dir_in
Listdir wyrzuci wyjątek, jeśli ścieżka wejściowa jest nieprawidłowa.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-04 22:14:40
Wystarczy podać os.stat
wersję (python 2):
import os, stat, errno
def CheckIsDir(directory):
try:
return stat.S_ISDIR(os.stat(directory).st_mode)
except OSError, e:
if e.errno == errno.ENOENT:
return False
raise
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-08 23:14:36
#You can also check it get help for you
if not os.path.isdir('mydir'):
print('new directry has been created')
os.system('mkdir mydir')
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-12 03:17:28