Найти - Пользователи
Полная версия: Обход файла
Начало » Python для новичков » Обход файла
1 2
xxnikolayxx
Я обхожу файл и при встрече прекращаю обработку.
но в итоге получается не то =)
весь файл записывается и его содержимое в 2 раза больше чем было =)
Как такое может быть, помогите.
par1 = '<name>online_users</name>'
config = open('ideal/config.xml')
_config = config
part1 = open('part1', 'a')
for config in _config:
if config == par1:
break
else:
print >> part1, (config)
part1.close()
s0rg
hint: xml это такой формат, и есть библиотеки для работы с ним.
xxnikolayxx
а можно по конкретнее или пример там какой-нить.
Я все таки новичек.
s0rg
Ну например:
http://lxml.de/tutorial.html
xxnikolayxx
неужели нельзя сделать так, чтобы for просто остановился если встретит нужную строку?
xxnikolayxx
А если у меня просто файл, не xml, как сделать обход его элементов и при обнаружении строки завершить процесс?
Оч интересно
s0rg
xxnikolayxx
неужели нельзя сделать так, чтобы for просто остановился если встретит нужную строку?
Можно, но для этого нужно знать в какой кодировке срока + если уж мы говорим о xml то строка пожет начинаться с пробелов.

xxnikolayxx
А если у меня просто файл, не xml, как сделать обход его элементов и при обнаружении строки завершить процесс?
with open('some_file') as fd:
for line in fd:
if line.strip() == 'somestring':
break
xxnikolayxx
Попробую тогда разобраться с библиотекой.
>>> root = etree.Element("/home/nikola/wingwork/wingwork0.3/ideal/config.xml")
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
root = etree.Element("/home/nikola/wingwork/wingwork0.3/ideal/config.xml")
File "lxml.etree.pyx", line 2568, in lxml.etree.Element (src/lxml/lxml.etree.c:52878)
File "apihelpers.pxi", line 126, in lxml.etree._makeElement (src/lxml/lxml.etree.c:11497)
File "apihelpers.pxi", line 1542, in lxml.etree._tagValidOrRaise (src/lxml/lxml.etree.c:23956)
ValueError: Invalid tag name u'/home/nikola/wingwork/wingwork0.3/ideal/config.xml'
>>>
Беда.
s0rg
xxnikolayxx
etree.Element
Вы берете элемент из ниоткуда.

Сначала нужно открыть файл.
tree = etree.parse("test.xml")
xxnikolayxx
Все запустилось, теперь мне нужно погрузить все в файл из конфига, до определенной строки.
и как же это реализуется?
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