小编Dan*_*gel的帖子

来自 Python 子进程的实时输出/流

我正在使用 Python 及其子进程库来使用 strace 检查调用的输出,具体如下:

subprocess.check_output(["strace", str(processname)]) 
Run Code Online (Sandbox Code Playgroud)

但是,这只在被调用的子进程完成后才给我输出,这对我的用例来说非常有限。

我需要进程的一种“流”或实时输出,因此我需要在进程仍在运行读取输出,而不是仅在进程完成后读取输出。

有没有一种使用子流程库来实现此目的的便捷方法?我正在考虑每 x 秒进行一次轮询,但没有找到有关如何在文档中实现此功能的任何提示。

提前谢谢了。

python console subprocess stream

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

创建"便携式".exe(无安装程序)

我最近编写了一个小程序来确定图片中的数字,它依赖于我使用过的两个库.(DLL)的

由于安全原因,我的目标计算机不允许安装程序,因此我需要创建一个可移植的.exe..NET安装在目标计算机上但由于某种原因VS仍然不包括我在exe中使用的库,而是创建一个带有setup.exe的应用程序文件夹,一些.DEPLOY文件和一个应用程序清单.

我一般都是VS和.NET的新手,所以这个问题很容易回答,但是我问,因为我在StackOverflow上找不到任何有用的东西.

.net c# portability

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

Python多重继承和MRO

我目前正在学习 Python 考试,但我还不了解 Python 3 中的 MRO 和线性化。

class F: pass 
class G: pass 
class H: pass
class E(G,H): pass
class D(E,F): pass 
class C(E,G): pass
class B(C,H): pass
class A(D,B,E): pass
Run Code Online (Sandbox Code Playgroud)

例如,在一项作业中,存在一个问题:在 A 类的线性化中,E 是否可能出现在 C 之前。

如何判断是否可以呢?如何尽可能简单地描述线性化算法(C3)?我真的很感谢有关这方面的各种解释和资源,因为我很难理解 Python 中的线性化。

预先非常感谢!

python inheritance method-resolution-order python-3.x

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

standard_init_linux.go:211:exec 用户进程在 alpine linux 和 python 中导致“没有这样的文件或目录”

我有一个包含 docker 文件、attack.py 和 requirements.txt 的目录。

使用它,我创建了以下 dockerfile:

FROM arm64v8/python:3.7-alpine

COPY qemu-arm-static /usr/bin

COPY ./ app-ids
WORKDIR /app-ids

RUN pip install --no-cache-dir -r requirements.txt

CMD["python","./attack.py"]
Run Code Online (Sandbox Code Playgroud)

但是,pip install 行抛出:standard_init_linux.go:211:exec user process 导致“没有这样的文件或目录”

我不明白为什么。使用 ls、pwd 等命令尝试调试会产生相同的错误。

谁能解释一下我到底做错了什么?

python docker dockerpy alpine-linux

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

用C逐行写入文件

我目前正在尝试获取代码,以完全按照打印数据的方式将数据写入文件。
由于某些原因,当我之后打开文本文件时,只有二进制数据。
如何将其转换为可读格式?

码:

#include <stdio.h>

void calcData(float *x,float* y){
    float tmpX,tmpY,a,b;
    a = 2.75;
    b = 0.2;
    tmpX = *x;
    tmpY = *y;
    *x = tmpY;
    *y = (-b*tmpX) + (a*tmpY) - (tmpY*tmpY*tmpY);
    return;
}

int main(){

    FILE *datei;
    float x = 0.5;
    float y = 0.5;
    int i;
    for(i=0;i<1000;i++){
        calcData(&x,&y);
        printf("%f \t %f \n",x,y);
        datei=fopen("txt.txt","a");
        fwrite(&x,1,sizeof(float),datei);
        fwrite("\t",1,sizeof(char),datei);
        fwrite(&y,1,sizeof(float),datei);
        fwrite("\n",1,sizeof(char),datei);
        fclose(datei);

    }
}
Run Code Online (Sandbox Code Playgroud)

c input output

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