Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python从外部C程序调用输出带有换行符的字符串_Python_C_String - Fatal编程技术网

Python从外部C程序调用输出带有换行符的字符串

Python从外部C程序调用输出带有换行符的字符串,python,c,string,Python,C,String,这是我的第一个问题,任何反馈都会令人惊讶 我正在从Python3调用一个C程序,并调用变量捕获的字符串 打印换行符,而不是处理换行符 想要这个: 你好 世界 我得到: b'你好\n世界' 我有一个叫做find.c的c程序: int main(int argc, char *argv[]){ printf("%s:\n%s\n\n",argv[1],argv[2]); return 0; } 由Python3执行/运行/处理: impor

这是我的第一个问题,任何反馈都会令人惊讶

我正在从Python3调用一个C程序,并调用变量捕获的字符串 打印换行符,而不是处理换行符

想要这个: 你好 世界

我得到: b'你好\n世界'

我有一个叫做find.c的c程序:

    int main(int argc, char *argv[]){

        printf("%s:\n%s\n\n",argv[1],argv[2]);
        return 0;
    }
由Python3执行/运行/处理:

    import sys
    import subprocess

    user = sys.argv[1]
    item = sys.argv[2]

    out = subprocess.check_output(["./find", user, item])
    print(out)
字符串“out”再次包含“\n”,而不是像 一条新路线

我尝试添加:universal\u newlines=True和end=”“以在没有运气的情况下签出()

我尝试过使用Popen()和call(),但它们仍然保留“\n”

最后一点:我将这个字符串输出到html中的文本区域。是的,我知道b''实际上不是字符串的一部分


干杯

在您的out中,您需要剥离车厢返回和新线路

import sys
import subprocess

user = sys.argv[1]
item = sys.argv[2]

out = check_output(["./find", user, item]).strip()
print(out)

我想出来了。对于任何感兴趣的人,我做了以下工作:

    print(subprocess.check_output(["./find",user,item],universal_newlines=True))
实际上,我没有专门尝试使用universal_newlines=True


看看我第一次接受的答案

试试这个。子进程正在返回字节字符串,您希望将其打印为ascii字符

print(out.decode('ascii'))

嘿,谢谢你的快速回复!然而,文本区域html中没有输出,我解决了它。看我的回答,干杯!