今天,我之前R配置jupyter工作空间,讲了各种语言内核分配不同的工作空间,虽然是方便管理,但有个问题就是需要每次都进入C盘的配置文件找到notebook的工作空间设置路径打开修改嘛。
因此,今天我编写了一个python脚本,直接运行后就能修改工作空间了,不需要去找到配置文件修改了。
修改jupyter notebook的工作空间,脚本代码如下:
"""
The Script is used to change
jupyter notebook kernels workspace.
Author:Successor
Time:2025/3/8
"""
import osdef change_kernel_space():os.chdir("C:/Users/Pan/.jupyter/")now_path = os.getcwd()print(now_path)list_dir = os.listdir(now_path)file = "jupyter_notebook_config.py"#从下面三个定义好的工作空间中进行选择Julia_space = "F:/Julia_project"R_space = "F:/R_project"python_space = "F:/python_project"print("1.{}".format(Julia_space))print("2.{}".format(R_space))print("3.{}".format(python_space))Select = int(input("请选择要更改的工作空间路径:"))file_path = "{}/{}".format(now_path,file)new_content = ""num = 0if file in list_dir:# print(True)with open(r'{}'.format(file_path),'r+',encoding="utf-8") as f:lines = f.readlines()length = len(lines)for line in lines:try:num += 1if "notebook_dir" in line:# now_space += line# print(num)break# print(line)except Exception:print("出现异常!!")if Select == 1:new_content = "c.NotebookApp.notebook_dir = 'F:/Julia_project'"print("成功修改jupyter notebook工作空间为:{}".format(Julia_space))elif Select == 2:new_content = "c.NotebookApp.notebook_dir = 'F:/R_project'"print("成功修改jupyter notebook工作空间为:{}".format(R_space))elif Select == 3:new_content = "c.NotebookApp.notebook_dir = 'F:/python_project'"print("成功修改jupyter notebook工作空间为:{}".format(python_space))else:print("输入错误!!")if 1<= num <= length:lines[num - 1] = new_content + '\n'with open(r'{}'.format(file_path),'w',encoding="utf-8") as file:file.writelines(lines)if __name__ == '__main__':change_kernel_space()
各位根据自身的各个语言内核的工作空间路径和用户名进行代码的修改,代码里面那三个是我自身那三个语言内核的工作空间。
我现在jupyter notebook的workspace是c.NotebookApp.notebook_dir = 'F:/Julia_project'
在F盘的Julia工作空间,我现在进入D盘运行脚本,结果如下:
各位可以看见我上图中C盘的config文件里面自行修改了工作空间,节省了我去C盘打开config文件修改工作空间的功夫。
关于覆盖写入文件中某一行的内容,我参考了百度AI,不得不说现在的AI真是方便,感谢百度AI提的建议,如果没有百度AI,我自己还不知道要研究多久。
最后,感谢各位前来观看鄙人的文章,文中或有诸多不妥,还望指出和海涵。