Как вставить новые строки в блокнот Jupyter по коду - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть шаблон записной книжки, и я собираюсь заполнить его по требованию.

Допустим, мне нужно прочитать n pandas фреймы данных

Шаблон записной книжки выглядит примерно так:

#df_id#
#df_path#

И к тому времени, когда я создаю его, я хочу получить что-то вроде

#[input_data_id: 1]
df1 = pd.read_csv('path1')

#df_id#
#paths#

Как копировать теги, заполняя их каждым новым параметром и повторяя

Проблема в том, что я не вижу, как вставить новую строку по коду в блокнот jupyter

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

for id_path in input_list:
    id_aux = id_path[0]
    path_aux = id_path[1]
    os.system("""sed -i "s|#paths#|'{0}', #paths#|" {1} """.format(path_aux,
                      file_path))
    os.system("""sed -i "s|#input_ids#|{0}, #input_ids#|" {1}""".format(id_aux,
                      file_path))

Это приводит к чему-то вроде этого:

paths = [
    'path1','path2','path3'
]

И я могу l oop поверх него и прочитать DFS в другом массиве, так что в конце я могу справиться с этим, но я бы хотел, чтобы он выглядел лучше, чем сейчас, и для этого мне нужно было бы вставить новые строки в ячейку ноутбука Jupyter.

Я работал над этим несколько дней и ничего работает, я пытаюсь сделать это легко, начиная с моего массива выглядит из этого * 10 23 *

paths = [
    'path1','path2','path3'
]

на это:

paths = [
    'path1',
    'path2',
    'path3',
]

А код примерно такой

os.system("""sed -i "s|#paths#|'{0}',\n","    #paths#|" {1} """.format(path_aux_mod,file_path))

Но он не работает. В настоящее время у меня нет никакого представления о том, как с этим справиться, потому что это не только команда sed (о которой я читал, и я не очень уверен насчет вставки новых строк, но и формат ячейки блокнота jupyter, который делает Ячейки выглядят так:

Этот python код

paths = [
    'path1',
    'path2',
    'path3
]

В файле .ipynb

"paths = [\n",
"    'path1',\n",
"    'path2',\n",
"    'path3'\n",
"]\n",

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

1 Ответ

0 голосов
/ 15 апреля 2020

Да, как вы сказали, я сменил весь лог c. Вместо того, чтобы использовать sed и пытаться заменить некоторые теги, сейчас я читаю .ipynb, используя пакет python s json, и потому что "template" это stati c, я имею в виду предложения для чтения входные данные всегда находятся в одной ячейке и т. д. c. Я могу получить доступ к ключевым «ячейкам» с помощью json и добавить новые предложения, когда они работают как список.

Это привело к гораздо более эффективному и ясному решению. Спасибо всем.

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