2024-09-30 20:34:12 发布
网友
任何人都可以在python尝试使用NET use时帮助我,我不知道python和perl中的/之间的区别,因为perl中的代码可以工作
$runMap = "C:\\Windows\\System32\\net.exe use \\\\$ip\\D\$ /persistent:no /user:$user_name $passwd"; system($runMap);
但在python3中不起作用
Perl使用的是插值,也就是说,可以在双引号字符串中嵌入变量,因为perl5插值变量以$或@标记开始。在您的例子中,您嵌入了$user_name和{}。在
$
@
$user_name
Python变量名的前缀不是“magic character”(sigil),因此除非使用格式化语句,否则不能将它们嵌入字符串中。有几个制度,这里有一个与printf相似的想法:
printf
cmd = "C:/Windows/System32/net.exe use Z: \\\\ip/D:/ /persistent:no /user:%s %s" % (username, passwd) os.system(cmd)
作为一个前Perlmonger,我非常想念插值,所以我编写了一个Python模块来支持它。虽然我学到了很多关于Python的知识,但这是在浪费时间。Python编程是一种不同的风格,您不再需要插值。在
顺便说一句,与Perl的system()不同,Python的os.system()将始终生成一个shell(与C一样)。因此,它通常被认为是弃用。subprocess.Popen()方法提供了更多的控制。在
system()
os.system()
subprocess.Popen()
编辑:
随着python3.6和文本字符串插值(在pep498中指定)的出现,更常见的是f-strings,我的原始帖子需要另一种方法来实现这一点。在
可以使用单引号或双引号。基本上,我们只需将Python表达式(通常是一个变量)放在大括号内(类似于Ruby)。在
例如:
关于subprocess.Popen()的注释也过时了,因为python3.5现在的首选接口是subprocess.run()。在
subprocess.run()
Perl使用的是插值,也就是说,可以在双引号字符串中嵌入变量,因为perl5插值变量以}。在
$
或@
标记开始。在您的例子中,您嵌入了$user_name
和{Python变量名的前缀不是“magic character”(sigil),因此除非使用格式化语句,否则不能将它们嵌入字符串中。有几个制度,这里有一个与
printf
相似的想法:作为一个前Perlmonger,我非常想念插值,所以我编写了一个Python模块来支持它。虽然我学到了很多关于Python的知识,但这是在浪费时间。Python编程是一种不同的风格,您不再需要插值。在
顺便说一句,与Perl的
system()
不同,Python的os.system()
将始终生成一个shell(与C一样)。因此,它通常被认为是弃用。subprocess.Popen()
方法提供了更多的控制。在编辑:
随着python3.6和文本字符串插值(在pep498中指定)的出现,更常见的是f-strings,我的原始帖子需要另一种方法来实现这一点。在
可以使用单引号或双引号。基本上,我们只需将Python表达式(通常是一个变量)放在大括号内(类似于Ruby)。在
例如:
^{2}$关于
subprocess.Popen()
的注释也过时了,因为python3.5现在的首选接口是subprocess.run()
。在相关问题 更多 >
编程相关推荐