我想编写一个函数来执行shell命令并将其输出作为字符串返回,无论是错误还是成功消息.我只想获得与命令行相同的结果.
什么是代码示例会做这样的事情?
例如:
def run_command(cmd):
# ??????
print run_command('mysqladmin create test -uroot -pmysqladmin12')
# Should output something like:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Python从字符串中删除特定字符.这是我现在正在使用的代码.不幸的是它似乎对字符串没有任何作用.
for char in line:
if char in " ?.!/;:":
line.replace(char,'')
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我已经花了很多时间,因为我是Python的新手.
我怎么能解码这样的URL:
example.com?title=%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D0%B2%D0%B0%D1%8F+%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0
Run Code Online (Sandbox Code Playgroud)
在python 2.7中的这个: example.com?title==????????+??????
url=urllib.unquote(url.encode("utf8")) 正在回归一些非常难看的东西.
仍然没有解决方案,任何帮助表示赞赏.
我需要从带有非ascii字符的URL获取数据,但urllib2.urlopen拒绝打开资源并引发:
UnicodeEncodeError: 'ascii' codec can't encode character u'\u0131' in position 26: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我知道URL不符合标准,但我没有机会改变它.
什么是访问由包含使用Python非ASCII字符的URL指向的资源的方式吗?
编辑:换句话说,可以/如何urlopen打开一个URL,如:
http://example.org/Ñöñ-Å?Ç??/
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用模块SEAPI.py的sublime text 2插件,该模块本身导入了请求模块.
由于sublime text 2使用它自己的嵌入式python解释器,它没有看到我的ubuntu机器中安装的请求模块(我收到以下错误:ImportError:没有名为requests的模块).
到目前为止我能找到的最佳解决方案是将"请求"模块(文件的整个目录)从/usr/lib/python2.7/dist-packages/requests复制到我的插件目录中的sublime文本包目录中.但在那之后,它说它找不到'urllib3'模块.
有没有更好的方法导入请求模块,以便我不必将所有文件复制到我的插件目录?
我正在使用的当前代码如下:
MyPlugin.py
import sublime
import sublime_plugin
import SEAPI
...
Run Code Online (Sandbox Code Playgroud)
SEAPI.py
import requests
try:
import simplejson as json
except:
import json
from time import time, sleep
...
Run Code Online (Sandbox Code Playgroud)
编辑: 所选答案是正确的并修复了我的主要问题,但使用当前版本的"请求"与嵌入式sublime text 2解释器存在不同的问题.ST2的python缺少常规2.7 python中存在的各种模块(例如'fileio').
我已经使用"请求"模块解决了这个问题:https: //github.com/bgreenlee/sublime-github
我必须编辑'urllib3/response.py'文件到这个:
try:
from cStringIO import StringIO as BytesIO
except ImportError:
pass # _fileio doesn't seem to exist in ST's python in Linux, but we don't need it
Run Code Online (Sandbox Code Playgroud) 编辑我现在意识到API简直不够,甚至没有工作.我想重定向我的问题,我希望能够使用他们的"我感觉很难"来自动神奇地搜索duckduckgo.因此,我可以搜索"stackoverflow",并获取主页(" https://stackoverflow.com/ ")作为我的结果.
我正在使用duckduckgo API.这里
我发现使用时:
r = duckduckgo.query("example")
Run Code Online (Sandbox Code Playgroud)
结果不反映手动搜索,即:
for result in r.results:
print result
Run Code Online (Sandbox Code Playgroud)
结果是:
>>>
>>>
Run Code Online (Sandbox Code Playgroud)
没有.
并在results结果中查找索引错误,因为它是空的.
我怎么能得到搜索结果?
似乎API(根据其记录的例子)应该回答问题并给出一种"我感觉很难吃"的形式 r.answer.text
但是网站是以这样的方式制作的,我无法使用普通方法搜索它并解析结果.
我想知道我应该如何使用此API或本网站的任何其他方法解析搜索结果.
谢谢.