Как распечатать данные из списка? - PullRequest
0 голосов
/ 17 апреля 2020

Я читаю файл и создаю список записей, но не знаю, как их распечатать. Не могли бы вы помочь мне, как это сделать?

fp = open('D:/Users/SPate233/Downloads/iMedical/code_11032020/latest_script/eureka_sqoop_emr_r.env', 'r')
lines = [line.rstrip('\n') for line in fp]

ouput

['CONDITIONS="1=1"', 'ENVIRONMENT=DEV', 'EC2_USER_HOME=/medaff/Scripts', 'AMPIL_LOCAL_MERGED_DIR=/medaff/eureka/RawLayer']

Теперь я хочу напечатать данные. Если я наберу print (УСЛОВИЯ), тогда он должен напечатать свое значение.

Ответы [ 3 ]

1 голос
/ 17 апреля 2020

После создания списка используйте следующий код для создания словаря:

data = {}    
for line in lines:
    temp = line.split('=', 1)
    data[temp[0]] = temp[1]
print(data['CONDITIONS'])
## Output '1=1'
0 голосов
/ 17 апреля 2020

Следующая функция должна делать именно то, что вы хотите:

def get_data_dict(l):
    data = {}
    l_split = [elem.split("=", 1) for elem in l]
    for key, value in l_split:
        data[key] = value

    return data

Так, например, вы можете использовать ее следующим образом:

data = get_data_dict(l)

data['ENVIRONMENT']

и вывод будет:

'DEV'
0 голосов
/ 17 апреля 2020
def print_data(data):
    for line in lines:
        if data in line:
           print(line.replace(data+"=", ""))

print_data('CONDITIONS')
# "1=1"

Обратите внимание, что для вашего случая использования словарь может быть более подходящим. Начиная с вашего списка, вы можете иметь словарь, например, такой:

dictionary = {line.split("=", 1)[0]:line.split("=", 1)[-1] for line in lines}

Чтобы иметь следующий вывод:

{'CONDITIONS': '"1=1"', 'ENVIRONMENT': 'DEV', 'EC2_USER_HOME': '/medaff/Scripts', 'AMPIL_LOCAL_MERGED_DIR': '/medaff/eureka/RawLayer'}

Теперь вы можете получить доступ к клавише "УСЛОВИЯ" просто с помощью:

dictionary['CONDITIONS']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...