You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Colab中运行Python脚本后无法调用输出变量的问题求助

问题解决:Colab中运行外部脚本后无法访问变量的问题

问题原因

你用!python命令运行外部脚本时,相当于启动了一个独立的Python进程,这个进程和Colab当前的Jupyter内核进程完全隔离——两个进程的内存空间不共享,所以脚本里定义的变量G只会存在于那个临时进程中,进程结束后就消失了,自然在其他单元格里调用会提示未定义。

至于保存CSV失败,大概率是因为你没指定明确的存储路径,脚本默认会把文件存在临时进程的工作目录里,这个目录和Colab当前会话的目录不互通,而且Colab重启后临时目录会被清空,所以你找不到保存的文件。


解决方案

提供两种实用的解决方式,按需选择:

方式1:直接在Colab会话中导入脚本函数并执行

这种方式能让变量直接留在当前会话里,方便后续调用:

  1. 先修改你的main.py,把生成G的逻辑封装成函数:
import pandas as pd

def f(i):
    g = i
    return g

def get_G():
    G = []
    for i in range(0,10):
        g = f(i)
        G.append(g)
    return pd.DataFrame(G)

# 脚本单独运行时也能正常保存
if __name__ == "__main__":
    G = get_G()
    G.to_csv('/content/gdrive/MyDrive/folder/G.csv', index=False)
  1. 在Colab的新单元格里,导入并调用这个函数:
# 添加脚本所在目录到Python路径
import sys
sys.path.append('/content/gdrive/MyDrive/folder')

from main import get_G

# 生成变量G,直接在当前会话可用
G = get_G()
print(G)

# 也可以直接在当前会话保存
G.to_csv('/content/gdrive/MyDrive/folder/G.csv', index=False)

方式2:让脚本把结果保存到Drive,再在Colab中读取

如果不想修改脚本结构,就让脚本把结果存到你挂载的Drive路径里,之后在Colab中读取文件:

  1. 修改main.py的if __name__块,指定Drive的绝对保存路径:
import pandas as pd

def f(i):
    g = i
    return g

if __name__ == "__main__":
    G = []
    for i in range(0,10):
        g = f(i)
        G.append(g)
    G = pd.DataFrame(G)
    # 保存到你挂载的Drive目录下
    G.to_csv('/content/gdrive/MyDrive/folder/G.csv', index=False)
  1. 运行脚本后,在Colab新单元格里读取这个文件:
import pandas as pd
# 读取Drive中的CSV文件,得到变量G
G = pd.read_csv('/content/gdrive/MyDrive/folder/G.csv')
print(G)

内容的提问来源于stack exchange,提问作者Talent Lessbum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:30:43