GVKun编程网logo

为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?(python为什么说字符无效)

23

在本文中,我们将带你了解为什么字符'^'会被PythonPopen忽略-如何在PopenWindows中转义'^'字符?在这篇文章中,我们将为您详细介绍为什么字符'^'会被PythonPopen忽略-

在本文中,我们将带你了解为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?在这篇文章中,我们将为您详细介绍为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?的方方面面,并解答python为什么说字符无效常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)、OpenCV – python 3.x和windows – Numpy的版本是什么?、Python Popen 未正确传递命令,发出转义字符、Python subprocess.Popen在Windows上以其他用户身份

本文目录一览:

为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?(python为什么说字符无效)

为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?(python为什么说字符无效)

我准备了一些代码来执行这样的命令行:

c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"

从命令行(与上面的命令相同)可以正常工作,但352x352 ^是352x352 ^而不是352x352:

c:\cygwin\bin\convert "c:\root\dropbox\www\tiff\photos\architecture\calendar-bwl-projekt\bwl01.tif" -thumbnail 352x352^ -format jpg -filter Catrom -unsharp 0x1 "c:\root\dropbox\www\tiff\thumbnails\architecture\calendar-bwl-projekt\thumbnail\bwl01.jpg"

如果从python运行此代码-字符’^’被忽略,调整大小的图像具有传递’%sx%s’的大小,而不是%sx%s ^-Python
为什么要剪切’^’字符以及如何避免呢?

def resize_image_to_jpg(input_file, output_file, size):  resize_command = ''c:\\cygwin\\bin\\convert "%s" -thumbnail %sx%s^ -format jpg -filter Catrom -unsharp 0x1 "%s"'' \                   % (input_file, size, size, output_file)  print resize_command  resize = subprocess.Popen(resize_command)  resize.wait()

答案1

小编典典

为什么Python会剪切’^’字符以及如何避免呢?

Python不会剪切^字符。Popen()照原样将字符串(resize_command)传递给CreateProcess()Windows
API调用。

很容易测试:

#!/usr/bin/env pythonimport sysimport subprocesssubprocess.check_call([sys.executable, ''-c'', ''import sys; print(sys.argv)''] +                      [''^'', ''<-- see, it is still here''])

后一个命令使用subprocess.list2cmdline()遵循“解析C命令行参数”规则将列表转换为命令字符串的方式-对无效^

^并不是特别的CreateProcess()^如果使用shell=Truecmd.exe运行时)是特殊的。

当且仅当
产生的命令行将由cmd解释时,才在每个shell元字符(或每个字符)前加上一个^字符。它包括^自身。

ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)

ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)

我已经安装了pyOpenSSL和所有必需的包,但我不能在shell中导入OpenSSL。 我得到这个错误:

>>> import OpenSSL Traceback (most recent call last): File "<stdin>",line 1,in <module> ImportError: No module named OpenSSL

所有已安装的软件包列表:

cryptography (0.9.3) distribute (0.7.3) idna (2.0) pip (7.1.0) pyasn1 (0.1.8) pyasn1-modules (0.0.5) pyopenssl (0.15.1) requests (2.7.0) service-identity (14.0.0) setuptools (18.1) six (1.9.0) Twisted (15.2.1) urllib3 (1.11) w3lib (1.12.0) zope.interface (4.1.2)

将数据库从一台机器导入/导出到另一台机器

使用Force在Windows上导入大型MysqL .sql文件

在Windows Server 2008中:Powershell无法导入模块ActiveDirectory

无法parsing符号“IoUtils”

如何将PDF转换为文本,以便我可以用PHPparsing文本?

Django uwsgi导入错误

如何永久添加Python导入path?

Windows中的Pygame:ImportError:DLL加载失败

MysqL加载数据:在准备好的语句协议中不支持这个命令

在ELF二进制中导入名称

如果您运行的是64位版本的Windows,那么我建议您安装OpenSSL的Win64版本,可从https://slproweb.com/products/Win32OpenSSL.html (向下滚动,直到找到64位安装程序)和64位版本的pyOpenSSL,可从http://www.egenix.com/products/python/pyOpenSSL/获&#x5F97;

检查你没有32位版本的各种产品,python软件包等。我有一些网站包在PYTHONPATH混淆python。 我删除了环境变量PYTHONPATH和类似的PYTHONUSERBASE(都是由一些软件推荐的,我正在尝试在哪里使用32位版本的mitmproxy并向后工作…)我想保留我的64位版本的Python (2.7.6)因此,当我遇到你在这里报告的同样的错误时,我的斗争。

由于软件包名称是pyOpenSSL,我认为你改变你导入的方式:

import pyOpenSSL

OpenCV – python 3.x和windows – Numpy的版本是什么?

OpenCV – python 3.x和windows – Numpy的版本是什么?

我从http://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv下载了openCV并安装了它。 当我试图运行它:

import cv2

我收到错误消息:

RuntimeError: module compiled against API version a but this version of numpy is 9 Traceback (most recent call last): File "<input>",line 1,in <module> File "C:Program Files (x86)JetBrainsPyCharm Community Edition 5.0.3helperspydevpydev_import_hook.py",line 21,in do_import module = self._system_import(name,*args,**kwargs) ImportError: numpy.core.multiarray Failed to import

我想我需要设置虚拟环境并安装不同版本的Numpy,但是我需要安装哪个Numpy版本?

在安装numpy时,我的virtualenv pip没有读取正确的distutils.cfg文件

如何在Windows上安装numpy 1.8 dev?

从源头上的Scipy安装问题?

在Windows上使用OpenBLAS安装numpy的教程

用Python 3.5安装numpy Windows 8 64

为什么NumPy导入在Ubuntu 12.10 64位闲置3.30

在Windows中编译用于python的SWIG包装器

导入错误:没有名为numpy的模块(numpy已经安装)

哪个Python在Windows上用于Numpy和朋友?

windows,ImportError:DLL加载失败:指定的模块找不到

你可以尝试使用anaconda发行版。 我正在使用它,它在Windows上使用opencv很好用。

你可以从这里下载: https : //www.continuum.io/downloads

然后使用conda来安装opencv

conda install -c conda-forge opencv

conda自带预安装的numpy,scipy,pandas等,并且使得在窗口上的部署变得无痛(因为它随着构建链一起提供)。

你需要numpy版本11或以上。 你可以在下面的链接找到它。 https://pypi.python.org/pypi/numpy

总结

以上是小编为你收集整理的OpenCV – python 3.x和windows – Numpy的版本是什么?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Python Popen 未正确传递命令,发出转义字符

Python Popen 未正确传递命令,发出转义字符

如何解决Python Popen 未正确传递命令,发出转义字符?

我试图使用 subprocess.Popen 来运行命令行并返回管道,但我注意到命令行没有按照给定的方式运行,所以 Popen 可能会在那里做一些奇怪的事情。

我需要双引号,因为路径中有空格。但它会以转义序列“ -> ”

进行转换
command = r''"c:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil" lmstat -c 27090@vcollab-lic-eu-01.asml.com -f VMoveCAE''
pipe = subprocess.Popen(command + '' & pause'',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)

我明白了(我确实添加了“& pause”以便能够看到发生了什么)

''\"c:\Program Files\ANSYS Inc\Shared Files\Licensing\winx64\lmutil\"'' is not recognized as an internal or external command,operable program or batch file.

知道如何去掉反斜杠吗?

我需要将输出返回给 Python。作为最后的手段,我可​​以创建批处理文件,使用 Python 运行并从文件中检索输出,但首选直接获取输出。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Python subprocess.Popen在Windows上以其他用户身份

Python subprocess.Popen在Windows上以其他用户身份

在Windows上以Python用户身份启动子进程的最佳方式是什么?最好是XP及更高版本,但如果仅在Vista和7上运行,我也可以接受。

答案1

小编典典

我不确定您是否可以使用标准python库执行此操作。但是,pywin32软件包具有win32process.CreateProcessAsUser函数,可能是您需要的。

关于为什么字符'^'会被Python Popen忽略-如何在Popen Windows中转义'^'字符?python为什么说字符无效的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于ImportError:没有名为OpenSSL的模块(python 2.7,windows 8.1)、OpenCV – python 3.x和windows – Numpy的版本是什么?、Python Popen 未正确传递命令,发出转义字符、Python subprocess.Popen在Windows上以其他用户身份等相关知识的信息别忘了在本站进行查找喔。

本文标签: