更改为带有白色 space 的目录...在 .ipynb 中有效但在 .py 中无效?
Change to a directory with white space...works in .ipynb but not .py?
尝试将我的 Jupyter Notebooks 转换为 python 脚本,以便我可以每天自动化它们。在 Mac.
这在笔记本中没有问题:
cd '/Volumes/GoogleDrive/My Drive/dailyScripts'
但是当我尝试 运行 它作为 .py 文件时,出现了各种问题。
- 首先,它拒绝引号作为无效语法。
cd '/Volumes/GoogleDrive/My Drive/dailyScripts'
^
SyntaxError: invalid syntax
- 所以我删除了引号,但显然它不喜欢没有反斜杠的白色 space。
cd /Volumes/GoogleDrive/My Drive/dailyScripts
^
SyntaxError: invalid syntax
- 然后我添加了一个反斜杠,但现在它不喜欢 Python 中的 \ 是一个续行符。
cd /Volumes/GoogleDrive/My\ Drive/dailyScripts
^
SyntaxError: unexpected character after line continuation character
我也试过双引号。不确定还有哪些其他选项。提前致谢!
这是因为 cd
是命令行界面的 shell 命令(例如 mac/linux 上的终端,或 windows 上的命令 prompt/Powershell) . IPython 笔记本是“智能”的,当它们看到你以 cd ...
开头的一行时,它会自动 运行 通过伪终端为你。
Python 本身不知道 cd
或其他 shell 程序,而是将其与操作系统的所有接口捆绑在 os
内部标准库中的模块。因此,要从 python 脚本内部更改目录,您需要使用 os
模块并使用 chdir
函数,如下所示:
import os
os.chdir("/Volumes/GoogleDrive/My Drive/dailyScripts")
进一步阅读 os.chdir
尝试将我的 Jupyter Notebooks 转换为 python 脚本,以便我可以每天自动化它们。在 Mac.
这在笔记本中没有问题:
cd '/Volumes/GoogleDrive/My Drive/dailyScripts'
但是当我尝试 运行 它作为 .py 文件时,出现了各种问题。
- 首先,它拒绝引号作为无效语法。
cd '/Volumes/GoogleDrive/My Drive/dailyScripts'
^
SyntaxError: invalid syntax
- 所以我删除了引号,但显然它不喜欢没有反斜杠的白色 space。
cd /Volumes/GoogleDrive/My Drive/dailyScripts
^
SyntaxError: invalid syntax
- 然后我添加了一个反斜杠,但现在它不喜欢 Python 中的 \ 是一个续行符。
cd /Volumes/GoogleDrive/My\ Drive/dailyScripts
^
SyntaxError: unexpected character after line continuation character
我也试过双引号。不确定还有哪些其他选项。提前致谢!
这是因为 cd
是命令行界面的 shell 命令(例如 mac/linux 上的终端,或 windows 上的命令 prompt/Powershell) . IPython 笔记本是“智能”的,当它们看到你以 cd ...
开头的一行时,它会自动 运行 通过伪终端为你。
Python 本身不知道 cd
或其他 shell 程序,而是将其与操作系统的所有接口捆绑在 os
内部标准库中的模块。因此,要从 python 脚本内部更改目录,您需要使用 os
模块并使用 chdir
函数,如下所示:
import os
os.chdir("/Volumes/GoogleDrive/My Drive/dailyScripts")
进一步阅读 os.chdir