Как читать текстовый файл построчно, как набор команд

У меня есть текстовый файл, в котором записано имя функции вместе с такими параметрами, как «вставка 3», где мне нужно прочитать вставку и 3 по отдельности, чтобы вызвать вставку функции с параметром 3.

До сих пор я открывал файл и вызывал в нем .readlines(), чтобы разделить каждую строку на список каждой строки текста. Сейчас я изо всех сил пытаюсь найти способ рекурсивно применить .split() к каждому элементу. Я должен сделать это с помощью функционального программирования, и я не могу использовать цикл for для применения функции .split().

def execute(fileName):
    file = open(fileName + '.txt', 'r').readlines()
    print(file)
    reduce(lambda x, a: map(x, a), )

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
89
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Эй, я только что написал код на repl.it, вы должны его проверить. Но вот поломка.

  1. Читать каждую строку из файла
  2. Теперь вам нужен список, в котором каждый элемент представляет собой новую строку из файла.

    lines = ["command argument", "command argument" ... "command argument"]
    
  3. Теперь выполните итерацию по каждому элементу в списке, где вы разделили элемент по « » (пробелу), и добавьте его в новый список, где будут храниться все команды и их соответствующие аргументы.

    for line in lines:
        commands.append(line.split(" "))
    
  4. Теперь список команд должен представлять собой многомерный массив, содержащий такие данные, как

    commands = [["command", "argument"], ["command", "argument"], ... ["command", "argument"]]
    
  5. Теперь вы можете просто перебирать каждый подсписок, где значение с индексом 0 — это команда, а значение с индексом 1 — аргумент. После этого вы можете использовать операторы if, чтобы проверить, какую команду/функцию запускать с каким типом данных в качестве аргумента.

ВОТ ВЕСЬ КОД:

    command = []
    with open("command_files.txt", "r") as f:
        lines = f.read().strip().split("\n") # removing spaces on both ends, and spliting at the new line character \n
        print(lines) # now we have a list where each element is a line from the file
        # breaking each line at " " (space) to get command and the argument
        for line in lines:
            # appending the list to command list
            command.append(line.split(" "))
       # now the command list should be a multidimensional array
       # we just have to go through each of the sub list and where the value at 0 index should be the command, and at index 1 the arguments
       for i in command:
           if i[0] == "print":
               print(i[1])
           else:
               print("Command not recognized")

Другие вопросы по теме