小编aar*_*acy的帖子

执行函数时进入python解释器

我有一个功能的python模块:

def do_stuff(param1 = 'a'):
    if type(param1) == int:
        # enter python interpreter here
        do_something()
    else:
        do_something_else()
Run Code Online (Sandbox Code Playgroud)

有没有办法进入命令行解释器,我有评论?所以如果我在python中运行以下内容:

>>> import my_module
>>> do_stuff(1)
Run Code Online (Sandbox Code Playgroud)

我得到了我在评论所在的范围和背景下的下一个提示do_stuff()

python

85
推荐指数
4
解决办法
3万
查看次数

CoffeeScript中的理解对象[dict/hash comprehensions]

有没有办法从coffeescript的理解中返回一个对象?这样的东西,我可以表达这个:

form_values = () ->
  ret = {}
  ret[f.name] = f.value for f in $('input, textarea, select')
  return ret
Run Code Online (Sandbox Code Playgroud)

像这样:

form_values = () -> f.name, f.value for f in $('input, textarea, select')
Run Code Online (Sandbox Code Playgroud)

我想构造一个对象(不是一个对象数组).所以如果标记看起来像这样:

<form name=blah>
  <input type=text name=blah1 value=111 />
  <textarea name=blah2>222</textarea>
  <select name=blah3>
    <option value=333a>
    <option value=333b>
  </select>
</form>
Run Code Online (Sandbox Code Playgroud)

返回的对象将是这样的:

{
  blah1: '111',
  blah2: '222',
  blah3: ''
}
Run Code Online (Sandbox Code Playgroud)

coffeescript

43
推荐指数
4
解决办法
7721
查看次数

关闭Django开发服务器中的静态文件缓存

有没有一种简单的方法可以关闭Django开发服务器中的静态文件缓存?

我正在使用标准命令启动服务器:

$ python manage.py runserver
Run Code Online (Sandbox Code Playgroud)

我已经settings.py配置为从/static我的Django项目目录中提供静态文件.我还有一个中间件类,它将Cache-Control头设置must-revalidate, no-cache为开发,但这似乎只会影响不在我的/static目录中的URL .

python django

29
推荐指数
6
解决办法
2万
查看次数

与其他客户端中不存在的node.js的ECONNREFUSED错误

我正在httpnode.js客户提出请求,但我收到了ECONNREFUSED错误消息.当我使用我的浏览器制作看似相同的请求时curl(1),它的工作正常

这是节点请求:

var options = {
  host: 'localhost',
  port: 8080,
  path: '/explorers/1.0/agegroup',
  method: 'GET'
};

var req = http.request(options, function(res) {
  res.setEncoding('utf8');
  res.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
  });
});

req.on('error', function(e) {
  console.log(e);
});

req.end();
Run Code Online (Sandbox Code Playgroud)

它给了我错误:

{ [Error: connect ECONNREFUSED]
  code: 'ECONNREFUSED',
  errno: 'ECONNREFUSED',
  syscall: 'connect' }
Run Code Online (Sandbox Code Playgroud)

但是当我与不同的客户端(curl在这种情况下)做出相同的请求时:

$ curl http://localhost:8080/explorers/1.0/agegroup
{... response JSON ...}
Run Code Online (Sandbox Code Playgroud)

其他说明:

  • 我已尝试将主机更改为www.google.com,将端口更改为80,并且节点成功建立连接

  • 我已经尝试更改服务器的端口,我仍然可以向所有客户端发出请求但node.js(仍然可以ECONNREFUSED)

  • 我正在连接的服务器是CherryPy WSGI服务器.当我尝试连接到nodelocalhost:8080 的服务器时,它运行正常,这会让我认为这是服务器的问题,除了其他客户端使用CherryPy服务器. …

http node.js

25
推荐指数
4
解决办法
4万
查看次数

带有命令行历史记录和制表符完成的mit-scheme REPL

我正在阅读SICP,我正在mit-scheme通过自制软件安装在我的os x 10.8笔记本电脑上.

一切都像宣传的那样工作,但是我很容易被REPL的标签完成和命令行历史记录所破坏,如Python和Node.js这样的运行时.

我不是在寻找任何重要的东西,但是这些功能在现代REPL中很容易实现(它只是一个简单的 Python 启动文件,可以在Node.js中用几行实现).

有没有一种简单的方法可以在没有重型应用程序或必须切换到emacs(即在xterm终端)中的mit-scheme REPL中获取选项卡完成和命令历史记录?

read-eval-print-loop mit-scheme

22
推荐指数
1
解决办法
2378
查看次数

grep使用上下文反转搜索

我想过滤掉文件中匹配行之前和之后的几行.

这将删除我不想要的行:

$ grep -v "line that i don't want"
Run Code Online (Sandbox Code Playgroud)

这将在我不想要的行之前和之后打印2行:

$ grep -C 2 "line that i don't want"
Run Code Online (Sandbox Code Playgroud)

但是当我将它们组合起来时,它不会过滤掉我不想要的行之前和之后的2行:

# does not remove 2 lines before and after the line I don't want:
$ grep -v -C 2 "line that i don't want"   
Run Code Online (Sandbox Code Playgroud)

如何不仅过滤掉我不想要的线,还要过滤掉之前和之后的线?我猜sed这会更好......

编辑:我知道这可以在几行awk/Perl/Python/Ruby /等中完成,但我想知道是否有一个简洁的单行程序,我可以从命令行运行.

unix shell grep sed

20
推荐指数
2
解决办法
1万
查看次数

将Ctrl-C发送到通过subprocess.Popen和ssh启动的远程进程

如何向对象中的Ctrl-C多个ssh -t进程发送Popen()

我有一些Python代码可以启动远程主机上的脚本:

# kickoff.py

# i call 'ssh' w/ the '-t' flag so that when i press 'ctrl-c', it get's
# sent to the script on the remote host.  otherwise 'ctrol-c' would just
# kill things on this end, and the script would still be running on the
# remote server
a = subprocess.Popen(['ssh', '-t', 'remote-host', './script.sh', 'a'])
a.communicate()
Run Code Online (Sandbox Code Playgroud)

这很好用,但我需要启动远程主机上的多个脚本:

# kickoff.py

a = subprocess.Popen(['ssh', '-t', 'remote-host', './script.sh', 'a'])
b = subprocess.Popen(['ssh', '-t', …
Run Code Online (Sandbox Code Playgroud)

python unix ssh popen

16
推荐指数
1
解决办法
3万
查看次数

在c ++中将字符串转换为argv

我有一个std :: string包含一个用execv执行的命令,什么是最好的"C++"方法将它转换为execv()的第二个参数所需的"char*argv []"?

澄清:

std::string cmd = "mycommand arg1 arg2";
char *cmd_argv[];

StrToArgv(cmd, cmd_argv); // how do I write this function?

execv(cmd_argv[0], cmd_argv);
Run Code Online (Sandbox Code Playgroud)

c++ stdstring argv

8
推荐指数
2
解决办法
1万
查看次数

在python中记录输出声音

我想以编程方式记录我的笔记本电脑中出现的声音.我发现PyAudio并想出了以下完成任务的程序:

import pyaudio, wave, sys

chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = sys.argv[1]

p = pyaudio.PyAudio()
channel_map = (0, 1)

stream_info = pyaudio.PaMacCoreStreamInfo(
    flags = pyaudio.PaMacCoreStreamInfo.paMacCorePlayNice,
    channel_map = channel_map)

stream = p.open(format = FORMAT,
                rate = RATE,
                input = True,
                input_host_api_specific_stream_info = stream_info,
                channels = CHANNELS)

all = []
for i in range(0, RATE / chunk * RECORD_SECONDS):
        data = stream.read(chunk)
        all.append(data)
stream.close()
p.terminate()

data = ''.join(all)
wf …
Run Code Online (Sandbox Code Playgroud)

python audio macos audio-streaming

8
推荐指数
1
解决办法
7884
查看次数

写入Python subprocess.Popen对象的文件描述符3

如何写入subprocess.Popen对象的文件描述符3?

我正在尝试使用Python完成以下shell命令中的重定向(不使用命名管道):

$ gpg --passphrase-fd 3 -c 3<passphrase.txt < filename.txt > filename.gpg
Run Code Online (Sandbox Code Playgroud)

python subprocess

8
推荐指数
1
解决办法
4858
查看次数