Lock Python code in Jupyter Notebook and make it executable as command
我在4个不同的单元格中运行以下代码:
小区1:
1 2 3 4 5 6 7 | import pandas as pd import numpy as np import os reference = pd.read_excel(argument1,sheet_name=argument2,na_values='0',converters={'SID': '{:0>12}'.format}) #reference file path reference.replace('',np.nan,inplace=True) reference.dropna(how='all',inplace = True) reference.drop([0],inplace=True) |
小区2:
1 | reference=reference[reference['SType']==argument'] |
小区4:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | path = argument4 file_list = os.listdir(path) for i in file_list: filename = os.path.join(path, i) #ori_df = pd.read_excel(filename) df = pd.read_excel(filename) cond = pd.Index(df.iloc[0]).intersection(reference.columns) df1 = reference[cond].copy() #df1.loc[-1] = df1.columns d = dict(zip(df.iloc[0], df.columns)) df1 = df1.sort_index().rename(columns=d) x = df1.iloc[:,1:].columns df1.dropna(axis=0,how='all',subset=x,inplace=True) if len(cond) > 1: df1.to_excel(filename,index = False) else: os.remove(filename) |
我想知道是否有任何方法可以将此代码保存为.py文件,并通过在jupyter单元格中传递命令行之类的参数使其可执行。 在Jupyter笔记本中是否允许? 如果有,请告诉我如何。
**对不起,如果我在这里无知,我尝试对此进行一些研究,但无法获得任何信息。
只需使用nbconvert
1 | jupyter-nbconvert --to script path/to/your/notebook.ipynb |
您将无法使用命令行传递自定义参数,这将需要对生成的脚本进行进一步的自定义。
相关文件
Convert a notebook to an executable script. This is the simplest way
to get a Python (or other language, depending on the kernel) script
out of a notebook. If there were any magics in an Jupyter notebook,
this may only be executable from a Jupyter session.
不久前我有同样的问题^^
我不确定我的答案是你期望的,但这是我做的方式:
假设您的文件是这样的:
1 2 3 4 | + | my_notebook.ipynb | + folder1 | | my_script.py |
假设你在文件
然后你可以这样做:
1 2 3 | import folder1.my_script as ms ms.run_script() |
为了能够将脚本作为包/模块调用,您需要在正确的位置创建空
1 2 3 4 5 6 | + | __init__.py | my_notebook.ipynb | + folder1 | | __init__.py | | my_script.py |