Maison développement back-end Tutoriel Python python基础教程之popen函数操作其它程序的输入和输出示例

python基础教程之popen函数操作其它程序的输入和输出示例

Jun 06, 2016 am 11:29 AM
输入

一、函数介绍

1.1 函数原型:

代码如下:


#include
FILE *popen(const char *command,const char *open_mode);

1.2 说明

popen函数允许一个程序将另一个程序作为新进程启动,并可以传递数据给它或者通过它接收数据。command字符串是要运行的程序名和相应参数(比如:ls或ls -l),openmode必须是 r 或w。如果是r,被调用程序的输出可以被调用它的程序使用;如果是w,调用程序就可以用fwrite向被调用程序发送数据作为它在标准输入流上的输入。

二、测试程序准备

这里准备两个很简单的程序供下面测试使用。

2.1 输出测试程序

代码如下:


// outputTest.c
#include

int main()
{
        printf("Just a test ! \n");
        return 0;
}

主要是实现向标准输出设备输出字符串,供下面的程序进行测试。

2.2 输入测试程序

代码如下:


// inputTest.c
#include

int main()
{
        char buf[1024] = {0};
        scanf("%s",buf);
        printf("your input : %s\n",buf);
        return 0;
}

主要是实现从标准输入设备输入字符串并输出,供下面的程序进行测试。

三、popen操作示例(C代码)

3.1 获得程序输出

以outputTest程序来测试,代码如下:

代码如下:


#include
#include
#include
#include

int main()
{
        FILE *read_fp;
        char buffer[BUFSIZ + 1];
        int chars_read;
        memset(buffer,'\0',sizeof(buffer));
        read_fp = popen("./outputTest","r");
        if(read_fp != NULL)
        {
                chars_read = fread(buffer,sizeof(char),BUFSIZ,read_fp);
                if(chars_read > 0)
                {
                        printf("Output was : \n%s\nDone\n",buffer);
                }
                pclose(read_fp);
                exit(EXIT_SUCCESS);
        }
        exit(EXIT_FAILURE);
}

运行效果如下:

python基础教程之popen函数操作其它程序的输入和输出示例

这里主要用r参数获得被调用程序的输出。

3.2 给其它程序传参数

以inputTest来测试,代码如下:

代码如下:


#include
#include
#include
#include

int main()
{
        FILE *write_fp;
        char buffer[BUFSIZ + 1];

        sprintf(buffer,"Once...\n");
        write_fp = popen("./inputTest","w");
        if(write_fp != NULL)
        {
                fwrite(buffer,sizeof(char),strlen(buffer),write_fp);
                pclose(write_fp);
                exit(EXIT_SUCCESS);
        }
        exit(EXIT_FAILURE);
}

运行效果如下:

python基础教程之popen函数操作其它程序的输入和输出示例

这里主要用w参数向被调用程序传参数。

四、poepn操作示例(python代码)

其实python也可以这样玩的。

4.1 获得程序输出

还以上文提到的outputTest程序为例,代码如下:

代码如下:


#! /usr/bin/python

import os
#var = os.popen('ls -l').read()
var = os.popen('./outputTest').read()
print var

运行效果如下:
python基础教程之popen函数操作其它程序的输入和输出示例

4.2 给其它程序传参数

还以上文提到的inputTest程序为例,代码如下:

代码如下:


#! /usr/bin/python

import os
os.popen('./inputTest','w').write("test")

运行效果如下:

python基础教程之popen函数操作其它程序的输入和输出示例
 
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
4 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Désactivation du guide d'expérience d'entrée Win11 Désactivation du guide d'expérience d'entrée Win11 Dec 27, 2023 am 11:07 AM

Récemment, de nombreux utilisateurs de Win11 ont rencontré le problème selon lequel la boîte de dialogue d'expérience de saisie scintille toujours et ne peut pas être désactivée. Cela est en fait dû aux services système et aux composants par défaut de Win11. Nous devons d'abord désactiver les services concernés, puis désactiver ceux-ci. service d’expérience de saisie. Résolu, essayons-le ensemble. Comment désactiver l'expérience de saisie dans Win11 : Première étape, cliquez avec le bouton droit sur le menu Démarrer et ouvrez « Gestionnaire des tâches ». Deuxième étape, recherchez les trois processus « CTF Loader », « MicrosoftIME » et « Service Host : Textinput Management Service ». dans l'ordre, faites un clic droit sur "Fin de tâche" "La troisième étape, ouvrez le menu Démarrer, recherchez et ouvrez "Services" en haut. La quatrième étape, recherchez "Textinp" dedans

L'entrée Windows rencontre un blocage ou une utilisation élevée de la mémoire [Réparer] L'entrée Windows rencontre un blocage ou une utilisation élevée de la mémoire [Réparer] Feb 19, 2024 pm 10:48 PM

L'expérience de saisie Windows est un service système clé chargé de traiter les entrées utilisateur provenant de divers périphériques d'interface humaine. Il démarre automatiquement au démarrage du système et s'exécute en arrière-plan. Cependant, ce service peut parfois se bloquer automatiquement ou occuper trop de mémoire, ce qui entraîne une réduction des performances du système. Il est donc crucial de surveiller et de gérer ce processus en temps opportun pour garantir l’efficacité et la stabilité du système. Dans cet article, nous expliquerons comment résoudre les problèmes de blocage de l'expérience de saisie Windows ou entraînant une utilisation élevée de la mémoire. Le service Windows Input Experience n'a pas d'interface utilisateur, mais il est étroitement lié à la gestion des tâches système de base et des fonctions liées aux périphériques d'entrée. Son rôle est d'aider le système Windows à comprendre chaque entrée saisie par l'utilisateur.

Résoudre le problème de saisie de la barre de recherche Win11 Résoudre le problème de saisie de la barre de recherche Win11 Dec 26, 2023 pm 12:07 PM

La barre de recherche est une fonction très utile du système win11, qui peut nous aider à trouver les paramètres, fonctions et services que nous souhaitons. Cependant, certains amis ont rencontré la situation dans laquelle la barre de recherche win11 ne peut pas être saisie. Nous pouvons modifier les données pertinentes dans le registre pour résoudre le problème. Suivons l'éditeur pour le résoudre. Que faire si la barre de recherche Win11 ne peut pas être saisie 1. Tout d'abord, nous pouvons appuyer sur "win+r" sur le clavier pour afficher Run. 2. Entrez ensuite « regedit » et appuyez sur Entrée pour ouvrir l'éditeur de registre. 3. Saisissez ensuite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Expl dans le chemin ci-dessus

Comment saisir une matrice de mots Comment saisir une matrice de mots Mar 19, 2024 pm 11:00 PM

La matrice est une formule que nous utilisons et rencontrons souvent, mais savez-vous comment saisir une matrice sous forme de mot ? De nombreuses personnes n'y ont peut-être jamais été exposées et se sentiront confuses lorsqu'elles l'utiliseront. Nous allons donc partager ici avec vous comment saisir le mot matrice. J'espère que partager cette technique pourra vous apporter aide et inspiration. 1. Tout d’abord, créez et ouvrez un document Word Afin de démontrer l’opération, nous utiliserons un document vierge pour la démonstration. Comme le montre la figure ci-dessous : 2. Si nous voulons saisir une matrice, nous devons trouver le bouton [Insérer] dans la barre de menu. Ce bouton peut insérer de nombreuses options de contenu, telles que des images, etc., le tout à partir de ce menu. bar. 3. Après avoir cliqué sur [Insérer], regardez sur le côté droit des options de notre outil et vous pouvez trouver [Formule], puis cliquez sur [

Programme C pour saisir un tableau de séquences d'entiers séparés par des espaces Programme C pour saisir un tableau de séquences d'entiers séparés par des espaces Aug 25, 2023 am 11:33 AM

Énoncé du problème Écrivez un programme C qui prend des entiers séparés par des espaces comme entrée de tableau. SampleExamples entrée 12345 sortie 'Arrayelementsare-'1,2,3,4,5La traduction chinoise de l'explication est la suivante : L'entrée d'explication contient 5 entiers séparés par des espaces. Entrée 997687542356878967343423 Sortie 'Arrayelementsare-'99,76,87,54,23,56,878,967,34,34,23 La traduction chinoise d'Explication est : Explication L'entrée contient 11 entiers séparés par des espaces. Méthode 1 Dans cette méthode, nous remplacerons l'entrée par du vide

Comment saisir le symbole d'inégalité dans PPT Comment saisir le symbole d'inégalité dans PPT Mar 26, 2024 pm 03:21 PM

1. Ouvrez le logiciel PPT et entrez dans l'interface de fonctionnement. 2. Recherchez l'option d'insertion dans cette interface. 3. Cliquez sur l'option Insérer et recherchez l'option Symbole spécial dans son sous-menu. 4. Cliquez sur l'option Symbole spécial pour faire apparaître la boîte de dialogue Insérer un symbole spécial. 5. Recherchez l'option de symbole mathématique dans cette boîte de dialogue. 6. Cliquez sur l'option Symbole mathématique et recherchez l'option Pas égal au symbole à l'intérieur. 7. Cliquez sur cette option et vous pouvez voir que notre symbole d'inégalité a été saisi dans la zone de saisie.

Guide pratique PHP : Comment déterminer si l'entrée contient uniquement des chiffres et des lettres Guide pratique PHP : Comment déterminer si l'entrée contient uniquement des chiffres et des lettres Mar 28, 2024 pm 03:06 PM

En programmation PHP, nous devons parfois limiter les données saisies par l'utilisateur, par exemple déterminer si l'entrée contient uniquement des chiffres et des lettres. Ceci est souvent rencontré dans le développement de projets réels, il est donc très important de maîtriser comment implémenter cette fonction. Cet article explique comment utiliser PHP pour déterminer que l'entrée ne contient que des chiffres et des lettres, et donne des exemples de code spécifiques. Pourquoi devons-nous déterminer que l’entrée ne contient que des chiffres et des lettres ? Lors du développement de sites Web, les données saisies par l'utilisateur peuvent être utilisées pour des fonctions importantes telles que les opérations de base de données et les opérations sur les fichiers si les données saisies par l'utilisateur contiennent des éléments spéciaux.

Que dois-je faire si le prochain mot que je tape est supprimé ? Que dois-je faire si le prochain mot que je tape est supprimé ? Nov 14, 2023 am 11:56 AM

Solution : 1. Retard du réseau, problèmes de performances logicielles ou matérielles, les solutions incluent la tentative de redémarrage de l'appareil, la mise à jour du logiciel ou l'effacement du cache, etc. 2. Les paramètres de la méthode de saisie sont incorrects, la solution consiste à vérifier les paramètres de la méthode de saisie et à s'assurer qu'ils sont corrects. configuration ; 3. Défaillance du clavier, la solution consiste à vérifier si le clavier fonctionne correctement et à remplacer le clavier si nécessaire. 4. Défaillance du système d'exploitation ou du logiciel, la solution consiste à mettre à jour le système d'exploitation ou le logiciel, ou à désinstaller et réinstaller le clavier. application problématique ; 5. Attaques de virus ou de logiciels malveillants, la solution consiste à utiliser un logiciel antivirus pour l'analyse et la suppression, etc.

See all articles