Найти - Пользователи
Полная версия: Выход из скрипта
Начало » Python для новичков » Выход из скрипта
1
Suliman
import os
import sys
import fnmatch
for filename in os.listdir("C:\\1\\2\\1"):
	if fnmatch.fnmatch(filename, '*raster_reclass*'):
		sys.exit()
	else:
		print filename

По идее если встречается, “raster_reclass” то программа должна завершаться, однако почему-то обрабатывается последний print и выводится все, что не содержит “raster_reclass”
agalen
Может fnmatchcase?
Suliman
А в логике кода ошибки нет?
Suliman
Вот к примеру. По логике должен быть выведен список файлов в которых есть слово “raster”. Однако такого не происходи. В чем ошибка?

import os
import sys
import fnmatch
files = []
for f in os.walk("C:\\1\\2\\1"):
	files.append(f)
	for f in files:
		if ("raster") in f:
			print f
wbt
for f in os.walk("C:\\1\\2\\1"):
	files.append(f)
	for f in files:
		if ("raster") in f:
			print f

ужас. во-первых, дважды используется f. во вторых внутрений for будет исполняться не один раз, а несколько.

for f in os.walk("/tmp/1/2/3"):
	if ("raster") in f:
		print f

Suliman
for f in os.walk("C:\\1\\2\\1"):
	files.append(f)
	if ("raster") in f:
		print "---"

У меня оно ничего не выводит %) Тоесть вообще ни единого символа на экран.

Выводит только если добавить:

files.sort()
for f in files:
	print f
masterito
http://docs.python.org/2/library/os.html
os.walk: Generate the file names in a directory tree by walking the tree either top-down or bottom-up. For each directory in the tree rooted at directory top (including top itself), it yields a 3-tuple (dirpath, dirnames, filenames).

Вам нужно искать имя в
f[1]
для директорий или
f[2]
(для файлов)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB