shell與python間傳遞變數方法

2021-07-07 07:13:30 字數 2254 閱讀 3956

python -> shell:

1.環境變數

[python]

view plain

copy

import

os var=123

或var=』

123』 

os.environ[』var』]=str(var) 

#environ的鍵值必須是字串

os.system(』echo $var』) 

2.字串連線

[python]

view plain

copy

import

os path=』/root/a.txt』 

var=[1

] var=』bash』 

os.system(』echo 』 + path) 

#注意echo後有空格

os.system(『echo 『 + str(var[0

])) 

os.system(』echo 』 + var + 』 /root/c.sh』) 

#注意echo後和/root前有空格 

3.通過管道

[python]

view plain

copy

import

os var=』123

』 os.popen(』wc -c』, 』w』).write(var) 

4.通過檔案

[python]

view plain

copy

output = open(『/tmp/mytxt』, 『w』) 

output.write(s) 

#把字串s寫入檔案

output.writelines(l) 

#將列表l中所有的行字串寫到檔案中

output.close() 

5.通過重定向標準備輸出

[python]

view plain

copy

buf = open(』/root/a.txt』, 』w』) 

print

>> buf, 『

123\n』, 『abc』  或

[python]

view plain

copy

print

>> open(『/root/a.txt』, 『w』), 『

123\n』, 『abc』 

#寫入或生成檔案

print

>> open(『/root/a.txt』, 『a』), 『

123\n』, 『abc』 

#追加

shell -> python:

1.管道

[python]

view plain

copy

import

os var=os.popen(』echo -n 

123』).read( ) 

print

var 

2.[python]

view plain

copy

import

commands 

var=commands.getoutput(』echo abc』) 

#輸出結果

var=commands.getstatusoutput(』echo abc』) 

#退出狀態和輸出結果

3.檔案

[python]

view plain

copy

input = open(『/tmp/mytxt』, 『r』) 

s = input.read( ) 

#把整個檔案讀到乙個字串中

s = input.readline( ) 

#讀下一行(越過行結束標誌)

l = input.readlines( ) 

#讀取整個檔案到乙個行字串的列表中

使用&&的方法包裹幾個命令列

import os

cmdstr = """ i=7 

&& seq --format="file '/home/kvivek/%g.flv'" $i> myfile.txt"""

os.system(cmdstr)

Python多程序佇列間傳遞物件

在python 需要在佇列中傳遞物件,會出現程序不能正常退出的情況。其原因是因為 在父程序 向子程序傳入的queue物件不對,queue物件正常是子程序之間的資訊傳遞,而當我在父程序 建立乙個queue,把它當引數傳入到子程序時,這時就會出現子程序無法退出的情況 將主程序要傳入自程序的queue的初...

Python多程序佇列間傳遞物件

在python 需要在佇列中傳遞物件,會出現程序不能正常退出的情況。其原因是因為 在父程序 向子程序傳入的queue物件不對,queue物件正常是子程序之間的資訊傳遞,而當我在父程序 建立乙個queue,把它當引數傳入到子程序時,這時就會出現子程序無法退出的情況 將主程序要傳入自程序的queue的初...

shell引數傳遞

1.位置變數引數即可傳入到指令碼的引數,最多可以訪問 9個,比如 sh a b c d 其中 0 是指令碼名字 1 是第乙個引數 a以此類推 2.特殊參量 傳遞到指令碼的引數個數 以乙個單字串顯示所有向指令碼傳遞的引數。與位置變數不同,可以超過9個 指令碼執行的當前id 後台執行的最後乙個程序的程序...