Вопрос

Не совсем уверен, как сформулировать этот вопрос, поэтому, если вы не совсем понимаете его, я могу попробовать еще раз.

У меня есть файл под названием 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' из сети или из так называемого злонамеренный пользователь - ты можешь этим воспользоваться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top