如何使用Python在Google Colab的指定文件夹中写入文件?
问题根因
你的代码报语法错误是两个问题导致的:
%%writefile是Jupyter环境的单元格级魔法命令,强制要求写在所在单元格的第一行,前面不能放任何其他命令、代码甚至空行,你把!mkdir win放在它前面,魔法命令无法被识别,直接触发语法错误。- 就算魔法命令正常生效,你写的
%%writefile dosa_bce_win.py只会把文件写到当前工作根目录,不会自动存入你刚创建的win文件夹,达不到你的预期。
可行解决方案
你可以二选一:
方案1:拆分单元格执行(最符合你原本的书写习惯)
- 第一个单元格单独执行文件夹创建命令,加参数避免重复创建时报错:
!mkdir -p win
- 新建第二个单元格,第一行直接写带正确路径的writefile魔法,后面跟你要写入的py文件全部内容:
%%writefile win/dosa_bce_win.py # 下方粘贴dosa_bce_win.py的全部代码 import xxx # 你的业务逻辑 if __name__ == "__main__": pass
方案2:单单元格用Python原生逻辑实现(无魔法命令兼容问题)
如果不想拆分单元格,直接用Python内置的文件操作接口就行,不存在魔法命令的位置限制:
import os # 创建win文件夹,文件夹已存在时不报错 os.makedirs("win", exist_ok=True) # 把你要写入的py文件内容放在三引号里 py_code = """ # 这里粘贴dosa_bce_win.py的全部代码 import xxx def your_func(): return True """ # 写入指定路径 with open("win/dosa_bce_win.py", "w", encoding="utf-8") as f: f.write(py_code)
注意事项
- 所有以
%%开头的单元格魔法命令,都必须放在单元格最顶部,前面不能有任何内容,否则必然报错。 - 写入文件时如果要存到子文件夹,必须显式写全路径
win/文件名,系统不会自动把文件放到你刚建的文件夹里。
内容的提问来源于stack exchange,提问作者ChillGod
相关产品推荐
相关产品推荐

