在 Jupyter notebook 中使用 main 方法调用 Python 文件

Call Python file with main method inside Jupyter notebook

我有问题。我想在我的 Jupyter Notebook 中调用一个 Python 文件。我查看了 但不幸的是 %run -i 'file.py'!python file.py 不起作用,因为我的文件与 Jupyter Notebook 文件不在同一个文件夹中。

那么我如何从不同的文件夹中调用 Python 文件呢? Jupyter 笔记本

from pathlib import *
# I am using pathlib, because of the whitespace in OneDrive
p = Path('C://Users//user//OneDrive - user//folder//file.py')
# %run -i ''C://Users//user//OneDrive - user//folder//file.py'
!python p
[OUT] python: can't open file 'C:\Users\user\Documents\p': [Errno 2] No such file or directory

file.py

def main():
    print("Hello")
    return "test"

if __name__ == "__main__":
    main()

chdir() 将当前工作目录更改为给定路径。

这应该完成你的工作:

import os
filepath = r'C:\Users\user\OneDrive - user\folder' 
os.chdir(filepath)
%run file.py

假设您的文件在 sub-folder ./playground/test folder 中,那么您可以这样做:

file_name = ".\playground\test folder\hello_world.py"

%run "$file_name"

诀窍是在使用 %run.

时在文件名周围使用引号(如果路径包含空格)

如果您使用 !python:

,同样适用
file_name = ".\playground\test folder\hello_world.py"

!python "$file_name"