在 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"
我有问题。我想在我的 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"