我有跟随简单的情节,我想显示原点轴(x,y).我已经有网格,但我需要强调x,y轴.
这是我的代码:
x = linspace(0.2,10,100)
plot(x, 1/x)
plot(x, log(x))
axis('equal')
grid()
Run Code Online (Sandbox Code Playgroud)
我见过这个问题.接受的答案建议使用"轴脊柱",只是链接到一些例子.然而,使用子图表的例子太复杂了.我无法弄清楚,如何在我的简单示例中使用"Axis spine".
当我使用ipython terminal
并想要打印一个numpy.ndarray
有很多列的行时,这些行会在80个字符左右自动断开(即行的宽度为cca 80个字符):
z = zeros((2,20))
print z
Run Code Online (Sandbox Code Playgroud)
据推测,ipython期望我的终端有80列.事实上,我的终端宽度为176个字符,我想使用全宽.
我试过更改以下参数,但这没有效果:
c.PlainTextFormatter.max_width = 160
Run Code Online (Sandbox Code Playgroud)
如何判断ipython
我的终端的全宽?
我ipython 1.2.1
在Debian Wheezy上使用
我的脚本采用-d
,--delimiter
作为参数:
parser.add_argument('-d', '--delimiter')
Run Code Online (Sandbox Code Playgroud)
但是当我将它--
作为分隔符传递时,它是空的
script.py --delimiter='--'
Run Code Online (Sandbox Code Playgroud)
我知道--
参数/参数解析很特殊,但我在表单中使用它--option='--'
并引用它。
为什么它不起作用?我正在使用Python 3.7.3
这是测试代码:
#!/bin/python3
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--delimiter')
parser.add_argument('pattern')
args = parser.parse_args()
print(args.delimiter)
Run Code Online (Sandbox Code Playgroud)
当我运行它时,script --delimiter=-- AAA
它打印为空args.delimiter
。
我编译perf
了我的内核(3.11.10).在编译期间,一些库丢失了,所以我安装了这些库.
但是现在当我跑步时perf
,我得到以下信息:
Couldn't record kernel reference relocation symbol
Symbol resolution may be skewed if relocation was used (e.g. kexec).
Check /proc/kallsyms permission or run as root.
Kernel address maps (/proc/{kallsyms,modules}) were restricted.
Check /proc/sys/kernel/kptr_restrict before running 'perf record'
If some relocation was applied (e.g. kexec) symbols may be misresolved.
Samples in kernel modules can't be resolved as well.
Run Code Online (Sandbox Code Playgroud)
由于我使用的是自定义构建内核,对我来说最明显的解释是,我的内核缺少某些选项.如果是这样,我怎样才能找出遗漏的内容?
我不确定到底perf
在抱怨什么.我怎样才能解决这个问题?
编辑:
/proc/kallsyms
不存在并/proc/sys/kernel/kptr_restrict
包含0
:
$ cat /proc/sys/kernel/kptr_restrict
0
Run Code Online (Sandbox Code Playgroud)
我自己编译了内核,它可能缺少一些选项.这是什么/proc/kallsyms
?如何在我的内核中启用它?
让我们假设我有简单的C程序,我编译它gcc -o hello hello.c
:
#include<stdio.h>
main()
{
printf("hello");
}
Run Code Online (Sandbox Code Playgroud)
现在我想用strings
实用程序显示"字符串" :
$ strings hello
/lib64/ld-linux-x86-64.so.2
__gmon_start__
libc.so.6
printf
__libc_start_main
GLIBC_2.2.5
fffff.
l$ L
t$(L
|$0H
hello
;*3$"
Run Code Online (Sandbox Code Playgroud)
并且,正如预期的那样,我可以在二进制文件中看到字符串"hello".
但是,当我修改我的C
程序并将"hello"作为常量时:
#include<stdio.h>
char s[6] = {'h','e','l','l','o','\0' } ;
main()
{
printf("%s\n", s);
}
Run Code Online (Sandbox Code Playgroud)
我再也看不到二进制文件中的字符串"hello"了.
有人可以解释一下原因吗?
我有一个/etc/default/foo
包含一行的文本文件:
FOO="/path/to/foo"
Run Code Online (Sandbox Code Playgroud)
在我的python脚本中,我需要引用变量FOO.
将文件"源" /etc/default/foo
到我的python脚本中的最简单方法是什么,就像我在bash中一样?
. /etc/default/foo
Run Code Online (Sandbox Code Playgroud) 我有一台IP摄像机(Axis M1054),我想录制视频流.我可能会从连续录制开始,但后来我想切换到由运动检测触发的剪辑(在触发发生前几秒预录制),录制以MPEG4(H.264)编码,而不是MJPEG.
有免费的开源Linux软件可以做到吗?我没有通过搜索互联网找到任何东西.你能推荐一些有效且成功使用的东西吗?还是我坚持使用商业软件?
如果使用不同的型号可以更好地使用Linux,我可以更换相机.
我使用ipython
带matplotlib
.是否可以配置图的默认背景颜色matplotlib
?curent(白色)颜色必须来自某个地方.可以说,它可以覆盖它#CCCCCC
吗?
注意:默认情况下,我不是指给定ipython笔记本的默认值.我的意思是我的matplotlib
安装默认.
@Ffisegydd建议的解决方案有效.然而,在设置之后axes.facecolor : F4EAEA
,我仍然会在情节周围获得白边:
我怎么能摆脱那些?
现在我有以下设置,我/etc/matplotlibrc
每次更改后都重启了ipython笔记本;
axes.facecolor : F4EAEA
figure.facecolor : F4EAEA
figure.edgecolor : F4EAEA
savefig.facecolor : F4EAEA
savefig.edgecolor : F4EAEA
Run Code Online (Sandbox Code Playgroud)
该图与原始屏幕截图相同.即情节周围有白色条纹.
我正在使用ipython,我在我的网站中有以下自定义css ~/.config/ipython/profile_nbserver/static/custom/custom.css
div.output_area {
border-radius: 4px;
background: #F4EAEA !important;
border: thin solid #4a4a4a;
}
Run Code Online (Sandbox Code Playgroud) 我需要将一个double传递给我的程序,但以下内容不起作用:
int main(int argc, char *argv[]) {
double ddd;
ddd=atof(argv[1]);
printf("%f\n", ddd);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我运行我的程序,因为./myprog 3.14
它仍然打印0.000000
.
有人可以帮忙吗?
我想处理日志文件中的每一行,IP
如果行与我的模式匹配,则提取地址。有几种不同类型的消息,在下面的示例中,我正在使用p1 and
p2`。
我可以逐行读取文件,并且每一行都与每种模式匹配。但是,由于可以有更多的模式,因此我想尽可能高效地进行操作。我希望将thos模式编译成一个对象,并且只对每行进行一次匹配:
import re
IP = r'(?P<ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})'
p1 = 'Registration from' + IP + '- Wrong password'
p2 = 'Call from' + IP + 'rejected because extension not found'
c = re.compile(r'(?:' + p1 + '|' + p2 + ')')
for line in sys.stdin:
match = re.search(c, line)
if match:
print(match['ip'])
Run Code Online (Sandbox Code Playgroud)
但是上面的代码不起作用,它抱怨ip
使用了两次。
实现目标的最优雅方式是什么?
编辑:
我已经根据@Dev Khadka的回答修改了我的代码。
但是我仍然在努力如何正确处理多个ip
比赛。下面的代码显示与p1匹配的所有IP:
for line in sys.stdin:
match = c.search(line)
if match:
print(match['ip1'])
Run Code Online (Sandbox Code Playgroud)
但是有些线不匹配p1
。他们匹配p2
。即,我得到: …