Python从外部C程序调用输出带有换行符的字符串
这是我的第一个问题,任何反馈都会令人惊讶 我正在从Python3调用一个C程序,并调用变量捕获的字符串 打印换行符,而不是处理换行符 想要这个: 你好 世界 我得到: b'你好\n世界' 我有一个叫做find.c的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
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中没有输出,我解决了它。看我的回答,干杯!