Je préfère créer / modifier des blocs-notes jupyter directement dans python en utilisant des délimiteurs de cellule # %%
. PyCharm est parfaitement heureux d'identifier les cellules de cette manière. Mais comment spécifier qu'une cellule est un non-python spécifiquement markdown ?
Y a-t-il quelque chose de similaire aux clôtures de code, par exemple
#%% {markdown}
Ou y a-t-il complètement construction différente disponible pour ce support?
3 Réponses :
Si vous utilisez trois guillemets simples (ou trois guillemets doubles), python interprétera tout ce qui se trouve entre comme du texte littéral, y compris les retours chariot, les espaces, et ignorant ce qu'il reconnaîtrait normalement comme des caractères spéciaux.
Ainsi, vous pouvez intégrer le markdown dans un fichier, ou dans un script de cette façon ...
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
SORTIE:
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)
Cela ne sera pas rendu en tant que markdown lors de la conversion par ipython
@javadba Vous avez raison. Peut-être que je ne comprends pas ce que vous essayez de faire. Ce serait la méthode si vous essayiez, par exemple, de demander à python d'écrire un fichier Markdown - sans être dérouté par la syntaxe Markdown.
Le besoin ici est d'avoir un fichier source compatible python qui peut être converti en .ipynb par une seule commande.
Je pense que jupytext
sera la voie à suivre: semble être populaire et pris en charge. Je ne l'ai toujours pas parfaitement fonctionné, mais il est plus prometteur.
#%% 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'] #%%
La cellule markdown
est désignée par
#%% [markdown]
Vous pouvez utiliser l'indicateur # %% md
. Par exemple:
#%% md # Title ## Heading 1 ### Heading 3 ### _Bold_ ### *Italics*
Les autres formats incluent:
#%% md Normal Text
avez-vous essayé
# %% md
?@vb_rises Je constate que votre suggestion pour
# %% md
fonctionne partiellement. Pourriez-vous obtenir une réponse montrant l'ensemble du processus de conversion en.ipynb
? J'ai essayé quelques packages comprenant github.com/gatsoulis/py2ipynb mais cela ne fonctionne pas encore.Je suppose que je ne pourrai pas montrer tout le processus de conversion en .ipynb. Je suppose que ce serait principalement par le biais de certains déjà développés le package uniquement. Pourquoi voulez-vous faire cela alors que vous pouvez facilement écrire .ipynb? De plus, une question non liée à cet article, je vois que vous utilisez une pile de données volumineuses (en particulier Spark), serait en mesure de recommander un parcours d'apprentissage pour cela. Cela m'intéresse beaucoup mais je ne peux suivre aucun chemin. Merci
@vb_rises OK Je suis en train de trouver l'e2e en utilisant
jupytext
(voir la réponse ci-dessous). Je préfère écrire.py
plutôt que.ipynb
en raison des bonnes pratiques d'ingénierie logicielle: gardez python modulaire et non perdu dans les notebooks. Sur l'autre sujet: il semble que vous ayez déjà trouvé certaines de mes réponses liées àspark
;) stackoverflow.com/search?q=user:1056563+[apache-spark]si vous écrivez python et que vous souhaitez ensuite le convertir en ipynb, vous passerez plus de temps à résoudre les problèmes de syntaxe au lieu d'écrire du code métier / utile directement dans ipynb. J'avais vu vos réponses, mais je vous demande une sorte de parcours d'apprentissage (livre, cours en ligne, etc.), où je peux d'abord clarifier les bases, puis pratiquer et ensuite voir les réponses en cas de problème.
"rédaction de code métier / utile". Mon travail a tendance à réutiliser beaucoup le même code: c'est donc différent de jeter du code dans un notebook Jupyter en l'exécutant plusieurs fois et en l'oubliant.