今天,我之前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,我自己還不知道要研究多久。
最后,感謝各位前來觀看鄙人的文章,文中或有諸多不妥,還望指出和海涵。