Разграничение Прочитанного файла
-
16-09-2019 - |
Вопрос
Не совсем уверен, как сформулировать этот вопрос, поэтому, если вы не совсем понимаете его, я могу попробовать еще раз.
У меня есть файл под названием example.txt и я хотел бы импортировать это в свою программу на Python.Здесь я произведу некоторые вычисления с учетом того, что в нем содержится, и других вещей, которые не имеют отношения к делу.
Вместо того, чтобы я импортировал этот файл, просматривал его построчно и извлекал нужную мне информацию..может ли Python сделать это вместо этого?Например, если я структурирую .текстовый правильно (будь то пары ключ / значение, разделенные символом equals в каждой строке), существует ли текущий Python 'way', где он может обрабатывать все это, и я работаю с этим?
Решение
with open("example.txt") as f:
for line in f:
key, value = line.strip().split("=")
do_something(key,value)
похоже на отправную точку, если я вас правильно понял.Для этого вам нужен Python 2.6 или 3.x.
Еще одно место, на которое стоит обратить внимание, - это csv
модуль, который может анализировать файлы значений, разделенных запятыми, и вы можете указать ему использовать =
вместо этого в качестве разделителя.Это позволит абстрагироваться от некоторой "ручной работы" в том предыдущем примере - но, похоже, ваш пример не особенно нуждается в такого рода абстракции.
Еще одна идея:
with open("example.txt") as f:
d = dict([line.strip().split("=") for line in f])
Теперь это лаконично и по-питонски :)
Другие советы
for line in open("file")
key, value = line.strip().split("=")
key=key.strip()
value=value.strip()
do_something(key,value)
Существует также другой метод - вы можете создать допустимый файл python (пусть это будет список, определение dict или что-то еще), прочитать его содержимое с помощью
f = open('file.txt', r)
content = f.read() #assuming file isn't too long
А затем просто проанализируйте это:
parsedContent = eval(content)
Вы можете передать любую среду в eval (см. Документы), поэтому у него может не быть доступа к вашим глобальным и локальным файлам.Это зло и неправильно, но в небольшой программе, которая не будет распространяться и не получит 'file.txt' из сети или из так называемого злонамеренный пользователь - ты можешь этим воспользоваться.