pythonshell变量
A. 请问各位,在shell中赋值了一个变量,能用python读取他吗,用什么命令呢
import subprocess
a = subprocess.Popen("echo $PATH", stdout=subprocess.PIPE, shell=True)
b, err = a.communicate()
print b
B. python shell 中怎么实现清屏
Python Shell有两种方式,分别为“Windows命令行窗口”和“IDLE”
“命令行窗口”下可以通过如下两种方法:
1. import subprocess
subprocess.call("clear") # linux/mac
subprocess.call("cls", shell=True) # windows
执行完次命令后,窗口顶部第一行会出现一个0,接下来才会是输入提示符“>>>”
消除这个0的方法是在此命令前添加一个变量,例如 i=subprocess.call("cls", shell=True)
2. import os
os.system("cls") # windows
os.system("clear") # linux
执行完次命令后,窗口顶部第一行也会出现一个0,接下来才会是输入提示符“>>>”
消除这个0的方法同方法1
“IDLE”下以上两种方式都不起作用,可以通过建立如下函数实现:
1、伪清屏
def cls():
print "
"*80 #Shell 3.0+ 改为 print(('
'*80))
此函数将命令行往下移动80行,数字80可以自己任意设定
这是伪清屏,只是输入满屏的空格而已
2、插件法
首先下载clearwindow.py,将这个文件放在Python XLibidlelib目录下(X为python版本),然后在这个目录下找到config-extensions.def这个文件(idle扩展的配置文件),以记事本的方式打开它(为防止出错,可以在打开它之前先一个备份)。打开config-extensions.def 后在句末加上这样几句:
[ClearWindow]
enable=1
enable_editor=0
enable_shell=1
[ClearWindow_cfgBindings]
clear-window=<Control-Key-l>
然后保存退出即可。
打开python的idle,看看options是不是多了一个选项clear shell window ctrl+L
如果是这样的话,那就证明安装成功了,以后要清屏直接ctrl+L就可以了
附clearwindow.py代码:
classClearWindow:
menudefs=[
('options',[None,
('ClearShellWindow','<<clear-window>>'),
]),]
def__init__(self,editwin):
self.editwin=editwin
self.text=self.editwin.text
self.text.bind("<<clear-window>>",self.clear_window2)
self.text.bind("<<undo>>",self.undo_event)#add="+"doesn'twork
defundo_event(self,event):
text=self.text
text.mark_set("iomark2","iomark")
text.mark_set("insert2","insert")
self.editwin.undo.undo_event(event)
#fixiomarkandinsert
text.mark_set("iomark","iomark2")
text.mark_set("insert","insert2")
text.mark_unset("iomark2")
text.mark_unset("insert2")
defclear_window2(self,event):#Alternativemethod
#
text=self.text
text.undo_block_start()
text.mark_set("iomark2","iomark")
text.mark_set("iomark",1.0)
text.delete(1.0,"iomark2linestart")
text.mark_set("iomark","iomark2")
text.mark_unset("iomark2")
text.undo_block_stop()
ifself.text.compare('insert','<','iomark'):
self.text.mark_set('insert','end-1c')
self.editwin.set_line_and_column()
defclear_window(self,event):
#removeundodelegator
undo=self.editwin.undo
self.editwin.per.removefilter(undo)
#clearthewindow,butpreservecurrentcommand
self.text.delete(1.0,"iomarklinestart")
ifself.text.compare('insert','<','iomark'):
self.text.mark_set('insert','end-1c')
self.editwin.set_line_and_column()
#restoreundodelegator
self.editwin.per.insertfilter(undo)
C. 如何打开python shell
Windows启动Python交互式解释器有两种方式。第一种方式是进入Pyhton的安装目录,直接运行python.exe程序;第二种方式是进入Windows命令行窗口,在命令行窗口启动python.exe。步骤如下:
1、第一步 找到python.exe文件:
注意事项:
1、在Windows命令行窗口启动Python交互式解释器,首先需要将Python安装目录的路径,添加到Path系统环境变量
2、可以启动Python交互解释器进行交互式编程,也可以用Python自带的集成开发工具编写Python程序
D. python 调用shell环境变量 和本地的不同
python -> shell:
1.环境变量
复制代码代码如下:
import os
var=123或var='123'
os.environ['var']=str(var) #environ的键值必须是字符串
os.system('echo $var')
复制代码代码如下:
import os
var=123或var='123'
os.environ['var']=str(var) #environ的键值必须是字符串
os.system('echo $var')
2.字符串连接
复制代码代码如下:
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前有空格
复制代码代码如下:
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.通过管道
复制代码代码如下:
import os
var='123'
os.popen('wc -c', 'w').write(var)
复制代码代码如下:
import os
var='123'
os.popen('wc -c', 'w').write(var)
4.通过文件
复制代码代码如下:
output = open('/tmp/mytxt', 'w')
output.write(S) #把字符串S写入文件
output.writelines(L) #将列表L中所有的行字符串写到文件中
output.close()
复制代码代码如下:
output = open('/tmp/mytxt', 'w')
output.write(S) #把字符串S写入文件
output.writelines(L) #将列表L中所有的行字符串写到文件中
output.close()
5.通过重定向标准备输出
复制代码代码如下:
buf = open('/root/a.txt', 'w')
print >> buf, '123\n', 'abc'
复制代码代码如下:
buf = open('/root/a.txt', 'w')
print >> buf, '123\n', 'abc'
或
复制代码代码如下:
print >> open('/root/a.txt', 'w'), '123\n', 'abc' #写入或生成文件
print >> open('/root/a.txt', 'a'), '123\n', 'abc' #追加
复制代码代码如下:
print >> open('/root/a.txt', 'w'), '123\n', 'abc' #写入或生成文件
print >> open('/root/a.txt', 'a'), '123\n', 'abc' #追加
shell -> python:
1.管道
复制代码代码如下:
import os
var=os.popen('echo -n 123').read( )
print var
复制代码代码如下:
import os
var=os.popen('echo -n 123').read( )
print var
2.
复制代码代码如下:
import commands
var=commands.getoutput('echo abc') #输出结果
var=commands.getstatusoutput('echo abc') #退出状态和输出结果
复制代码代码如下:
import commands
var=commands.getoutput('echo abc') #输出结果
var=commands.getstatusoutput('echo abc') #退出状态和输出结果
3.文件
复制代码代码如下:
input = open('/tmp/mytxt', 'r')
S = input.read( ) #把整个文件读到一个字符串中
S = input.readline( ) #读下一行(越过行结束标志)
L = input.readlines( ) #读取整个文件到一个行字符串的列表中
复制代码代码如下:
input = open('/tmp/mytxt', 'r')
S = input.read( ) #把整个文件读到一个字符串中
S = input.readline( ) #读下一行(越过行结束标志)
L = input.readlines( ) #读取整个文件到一个行字符串的列表中
E. ipython如何将shell变量转换为Python变量
有一个模块,似乎叫environment,可以直接访问shell里的环境变量。
F. 如何把python变量 传给shell命令
变量前面用global声明全局变量,运行文件后就能在shell里面调用了
globala
a=1
G. python有没有类似shell中 $#的变量来表示传进来多少个参数。
用 len(sys.argv)-1 能得到用户输入的参数的个数,因为sys.argv的第一个元素总脚本名,所以要-1
H. 如何使用shell或python进行变量替换
echo $test
这是PHP吧?你确定要用python处理?
思路:
读取a文件内容 遍历每行内容
以单引号分割字符串 得到设置的值
按照b文件格式拼接出c文件的内容
最后生成或覆盖c文件