我需要用Python进行如下导出:

# export MY_DATA="my_export"

我试着做:

# -*- python-mode -*-
# -*- coding: utf-8 -*-
import os
os.system('export MY_DATA="my_export"')

但当我列出导出时,"我的_数据"不会出现:

# export

如何使用Python进行导出而不将"my_export"保存到文件中?

推荐答案

export是您直接给shell(例如bash)的一个命令,告诉它添加或修改其中一个环境变量.您不能从子进程(如Python)更改shell的环境,这是不可能的.

下面是当你try os.system('export MY_DATA="my_export"')次时发生的事情...

/bin/bash process, command `python yourscript.py` forks python subprocess
 |_
   /usr/bin/python process, command `os.system()` forks /bin/sh subprocess
    |_
      /bin/sh process, command `export ...` changes its local environment

当最底层的/bin/sh个子进程完成运行export ...命令时,它将被丢弃,以及您刚刚更改的环境.

Linux相关问答推荐

AWK 命令根据另一列中相同的值获取列中的不同值

命令行中使用`..`为什么会导致权限被拒绝错误?

将(覆盖)文件移动到不同位置的同名文件夹中

如何使 awk 输出更具可读性?

X86 程序集 - struct 点 - 存储/返回不正确?

可以用openmp并行化内存分配删除吗? (c++)

未找到 SDL_Vertex 和 SDL_RenderGeometry

Bash shift 改变了关联数组的期望值

进程Forking 后 pthread_key_create() 生成的密钥会发生什么?

我应该如何从非 root Debian Linux 守护进程登录?

在 puppet 中管理 linux 的用户密码

如何指定链接时使用的库版本?

从 Linux 到 Windows 交叉编译 C++ 应用程序的手册?

哪个程序在给定任何文件的情况下创建一个 C 数组?

Bash 命令 :(){ :|:& };: 将产生进程导致内核死亡.你能解释一下语法吗?

将以前忽略的目录添加到 Git 存储库

如何以另一个用户的身份使用 sudo 在 bash 子shell 中执行一系列命令?

使远程目录保持最新

PHP exec - 判断是否启用或禁用

Linux 的文本编辑器(除了 Vi)?