如何在Linux上使用Python导出

2024-04-29 07:19:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在Python中进行这样的导出:

# export MY_DATA="my_export"

我试过:

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

但当我列出导出时,“我的数据”不会出现:

# export

如何使用Python进行导出而不将“我的导出”保存到文件中?


Tags: 文件数据importdataosmodemyexport
3条回答

你真的想这么做

import os
os.environ["MY_DATA"] = "my_export"

另一种方法是,如果您很匆忙,并且不介意后面的内容,那么可以在bash环境中执行python脚本的输出,并打印出在python中执行设置环境的命令。不太理想,但能在紧要关头完成工作。它在炮弹上不太方便携带,所以YMMV。

$(python -c 'print "export MY_DATA=my_export"')

(您也可以将语句用反勾号括在一些shell中``)

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

以下是你尝试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 local environment

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

相关问题 更多 >