Аналог bash "echo $ (cat file)" в python (еще одна временная интерполяция строки) - PullRequest
1 голос
/ 15 августа 2011

У меня есть файл values.txt с иерархическим форматированием, подобным этому:

group1
      subgroup1
            value1
            value2
group2
      subgroup2
            value3
            value4

если в bash я выполню

echo $(cat values.txt)

Я получу вывод:

group1 subgroup1 value1 value2 group2 subgroup2 value3 value4

Я бы хотел отформатировать эту строку точно таким же образом изнутри скрипта Python, поэтому будет очень легко разделить ее на пробелы для дальнейшей обработки.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 15 августа 2011

Как указывает Байрон, split по умолчанию разделяется на пустое пространство, поэтому вы можете просто набрать

contents = open("values.txt", "r").read().split()

и получить нужный список, объединяя два описанных вами шага.Если у вас есть другое использование промежуточной «строки, отформатированной точно так же», вы можете создать ее из разделенного списка с помощью

" ".join(contents)
0 голосов
/ 15 августа 2011
with open('values.txt') as file:
    data = file.read()
    data = ' '.join(data.split())
    print data
    # or just:
    data = file.read().split()
...