小编kfx*_*kfx的帖子

在Linux中使用Python获得系统正常运行时间的最快方法

我正在寻找一种从Python脚本中读取系统正常运行时间的快速轻量级方法.有没有办法sysinfo从Python 调用Linux系统调用?

到目前为止,我已经找到了另外两种测量正常运行时间的方法,一种涉及运行外部进程,另一种涉及读取文件/proc.

import subprocess

def uptime1():
    raw = subprocess.check_output('uptime').decode("utf8").replace(',', '')
    days = int(raw.split()[2])
    if 'min' in raw:
        hours = 0
        minutes = int(raw[4])
    else:
        hours, minutes = map(int,raw.split()[4].split(':'))
    totalsecs = ((days * 24 + hours) * 60 + minutes) * 60
    return totalsecs

def uptime2():  
    with open('/proc/uptime', 'r') as f:
        uptime_seconds = float(f.readline().split()[0])
        return uptime_seconds
Run Code Online (Sandbox Code Playgroud)

比较速度时,第二种方法的速度提高了约50倍.尽管如此,直接呼叫系统呼叫应该是另一个数量级更好.

>> import timeit
>> print(timeit.timeit('ut.uptime1()', setup="import uptimecalls as ut", number=1000))
1.7286969429987948
>> print(timeit.timeit('ut.uptime2()', setup="import uptimecalls as ut", number=1000))
0.03355383600865025
Run Code Online (Sandbox Code Playgroud)

python linux

9
推荐指数
5
解决办法
1万
查看次数

MPAndroidChart:在BarChart中将X轴的标签旋转90度

我在MPAndroidChart的BarChart的xAxes中的文字太长了.如何将xAxes的标签旋转90度?

android mpandroidchart

5
推荐指数
3
解决办法
5313
查看次数

如何在Contiki / Cooja模拟器中启用消息加密?

我想加密传感器节点之间交换的消息。

我可以在没有访问真实硬件传感器节点(例如Tmote Sky)的情况下执行此操作吗?

只能在Tmote Sky节点上模拟软件加密/分组密码吗?如果我需要使用硬件加密算法,那么我应该有一个真实的传感器节点吗?

另外,我读到,对于对称加密,必须具有真实的传感器节点,但是非对称加密也可以与仿真节点一起使用吗?

任何文档或说明都将有所帮助。

encryption simulation emulation contiki

5
推荐指数
1
解决办法
2329
查看次数

从另一个线程调度asyncio协同程序

我尝试使用另一个线程安排asyncio协同程序create_task().问题是没有调用协程,至少在合理的时间内没有.

是否有办法唤醒事件循环或至少指定更短的超时?

#!/usr/bin/python3

import asyncio, threading

event_loop = None

@asyncio.coroutine
def coroutine():
    print("coroutine called")

def scheduler():
    print("scheduling...")
    event_loop.create_task(coroutine())
    threading.Timer(2, scheduler).start()

def main():
    global event_loop

    threading.Timer(2, scheduler).start()

    event_loop = asyncio.new_event_loop()
    asyncio.set_event_loop(event_loop)
    event_loop.run_forever()

main()
Run Code Online (Sandbox Code Playgroud)

输出:

scheduling...
scheduling...
scheduling...
scheduling...
Run Code Online (Sandbox Code Playgroud)

python multithreading python-3.x python-asyncio

5
推荐指数
1
解决办法
2169
查看次数

使用点运算符时超出最大调用堆栈大小

我尝试向数组添加min()max()函数,使用...运算符实现:

Array.prototype.min = Array.prototype.min || function () {
    return Math.min(...this);
};
Run Code Online (Sandbox Code Playgroud)

但是,在大型数组上调用这些函数时,出现异常:“RangeError:超出最大调用堆栈大小”。到底是怎么回事?

console.log(new Array(100000).min());  /* works */
console.log(new Array(1000000).min()); /* error */
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
1
解决办法
2614
查看次数

为什么此代码的输出为空

我正在尝试打印字符串的电源组.

代码编译成功,但是,执行时,屏幕上不会打印任何内容.

我无法理解这背后的原因.

以下是代码:

#include<stdio.h>
#include<string.h>
#include<math.h>
void main()
{
    char s[]="abcd";
    int i,j,k=1;
    int y=strlen(s);
    int z=pow(2,y);
    for(i=0;i<z;i++)
    {
        k=1;
        for(j=0;j<y;j++)
        {
            if(j & k)
                printf(" %c",s[j]);
            k=k<<1;
        }
        printf("\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

c string bit-manipulation

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

C - 如何从设备端的串口接收(z1 mote)

我正在尝试使用 与直接连接到我的 PC 的 z1 mote 进行通信pyserial。我想要做的是写入节点,并在收到命令后,节点应回复当前的温度读数,例如。

Python端可以是这样的(iinm)

import serial
ser = serial.Serial(0)  
ser.write("hello")      # the mote will receive the message and do something 
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在使用 C 的 z1 mote 端接收消息。是否有特殊的方法来接收命令,还是我必须创建自己的方法?

任何提示和提示都将不胜感激。

msp430 contiki

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

读写 C 系统调用是否使用缓冲区?

我正在与一位老师交谈,他告诉我读写系统调用正在使用缓冲区,因为系统规范中有一个变量控制您可以访问要读取/写入的设备的次数,并且当他等待在设备上写入时,系统使用缓冲区来存储数据。

我在另一篇 Stack Overflow 帖子(C fopen vs openfopen )上看到和函数的优点之一fwrite是这些函数使用缓冲区(这应该更快)。read我已经阅读了和sys call的手册页write,并且手册页没有讨论任何缓冲区。

我是不是误会了什么?read/ writeC 系统调用缓冲区如何工作?

c io system-calls read-write

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

在C循环中更改char*字符串

我正在尝试更改循环中的字符串,以便能够使用更改的变量保存我的图像.代码段如下:

for (frames=1; frames<=10; frames++)
{
    char* Filename = "NEWIMAGE";
    int Save_Img = is_SaveImageMemEx (hCam, Filename, pMem, memID, 
    IS_IMG_PNG, 100);
    printf("Status Save %d\n",Save_Img);
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是将一个随循环计数器更改的变量放在里面,Filename这样我保存的文件就会在每次迭代时更改名称.

任何帮助都会很棒.

c string loops char

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

具有特殊条件的阵列中的最大总和

假设我们有一个带有n个元素的数组(n%3 = 0).在每个步骤中,从数组中取一个数字.你要么是最左边的,要么是最右边的.如果选择左边的元素,则将此元素添加到总和中,并删除右边的两个数字,反之亦然.

示例:A = [100,4,2,150,1,1],sum = 0.

  1. 采取最左边的元素.A = [4,2,150] sum = 0 + 100 = 100

2.采取最右边的元素.A = [] sum = 100 + 150 = 250

所以A的结果应该是250,序列是Left,Right.

如何计算数组中可以得到的最大总和?我如何确定我必须提取元素的顺序?

我想这个问题最好用动态编程来解决,然后可以通过回溯来确定具体的顺序.

algorithm dynamic-programming

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

数组中 3 个整数的最大乘积

我正在尝试解决一个问题,我想在数组中找到任何 3 个整数的最大乘积。

我尝试了我的解决方案:

def maximumProduct(nums):
    """
    :type nums: List[int]
    :rtype: int
    """

    list_of_ints = nums

    t = sorted(list_of_ints[:4])

    max_pos = t[2] 
    max_pos_2 = t[1]
    max_pos_3 = t[0]

    min_neg = 0
    min_neg_2 = 0

    for x in list_of_ints[3:]:
        if x<0 and x< min_neg:
            temp = min_neg
            min_neg = x
            min_neg_2 = temp

        elif x<0 and x<min_neg_2: 
            min_neg_2 = x

        if x>0 and x>max_pos:
            temp = max_pos
            max_pos = x
            temp2 = max_pos_2
            max_pos_2 = temp
            max_pos_3 = temp2

        elif x>0 …
Run Code Online (Sandbox Code Playgroud)

python algorithm initialization data-structures

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