Как встроить Markdown в файл python, используемый как блокнот jupyter в PyCharm - PullRequest
1 голос
/ 13 октября 2019

Я предпочитаю создавать / редактировать jupyter записные книжки непосредственно в Python, используя #%% разделители ячеек. PyCharm совершенно счастлив идентифицировать клетки таким образом. Но как нам указать, что ячейка не является питоном, а именно markdown ?

enter image description here

Есть ли что-то похожее на заборы кода, например

#%% {markdown}

Или для этой поддержки существует совершенно другая конструкция?

Ответы [ 2 ]

0 голосов
/ 13 октября 2019

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

 pip3 install jupytext

 jupytext --to notebook   /git/prdnlp/python/readct.py

 jupyter-notebook /git/prdnlp/python/readct.ipynb

Ячейка markdown обозначается как

#%% [markdown]

Так что код теперь выглядит так:

#%%
import pandas as pd
from pandasql import sqldf


#%% [markdown]

"""
## Clinical Trials Postgres queries

We are using data from [ClinicalTrials.gov](https://clinicaltrials.gov/ct2/results?term=recurrent&cond=Glioblastoma+Multiforme&age_v=&gndr=&type=&rslt=With&Search=Apply)

 - The data is synced to the AACT database daily
 - The conditions and interventions are identified within specific tables

"""
#%%
ct = pd.read_csv('~/Downloads/SearchResults.tsv',delimiter='\t')
ctIdsDf = sqldf("select `NCT Number` nct_id, * from ct order by 1")
ctIds = ctIdsDf['nct_id']

#%%

Обратите внимание, что тройные кавычки все еще отображаются в выводе: поэтому мне неясно, как заставить их быть "вырезанными" с помощью jupytext:

enter image description here

0 голосов
/ 13 октября 2019

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

Таким образом, вы можете встроить уценку в файл или в скрипт таким образом ...

s = '''
This line starts at the edge and has a carriage return
  This one starts two spaces in. 
  # This one has a hashtag, which is nŃOT seen as a comment. 
  https://thisIsJustTextNow.com
'''

print(s)

ВЫХОД:

This line starts at the edge and has a carriage return
  This one starts two spaces in. 
  # This one has a hashtag, which is NOT seen as a comment. 
  https://thisIsJustTextNow.com
...