Python: popen problems


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Python: popen problems
# 1  
Old 06-11-2007
Python: popen problems

Hello I'm writing a web server in python(obelisk-http.sourceforge.net)
and I'm having a greeat problem with POST method it like that

When someone make a POST request to the server it must open the executable(perl/python/.exe/elf) and send to the STANDART in (stdin) the request and get the response.

when i send the request to stdin of any binarie(.exe or elf) works

but when i try to use a script it don't read the stdin I'm using a code like that

Code:
import os,sys
from subprocess import Popen,PIPE 

try:
    stdin, stdout = os.popen2("script.py")
except:
    exit(1)
stdin.write("Hello World!")
stdin.close()
print stdout.read()
stdout.close()


script.py:

Code:
print raw_input() #just read from stdin and send to stdout


ok, but it don't work :\

someone have an ideia?

Last edited by sendai; 06-11-2007 at 07:07 PM..
# 2  
Old 06-11-2007
What error are you getting? It will be difficult to help you unless you share information like that. I tried the first bit of code that you've supplied, and it works fine on a terminal.
# 3  
Old 06-11-2007
Quote:
Originally Posted by sendai
Hello I'm writing a web server in python(obelisk-http.sourceforge.net)
and I'm having a greeat problem with POST method it like that

When someone make a POST request to the server it must open the executable(perl/python/.exe/elf) and send to the STANDART in (stdin) the request and get the response.

when i send the request to stdin of any binarie(.exe or elf) works

but when i try to use a script it don't read the stdin I'm using a code like that

Code:
import os,sys
from subprocess import Popen,PIPE 

try:
    stdin, stdout = os.popen2("script.py")
except:
    exit(1)
stdin.write("Hello World!")
stdin.close()
print stdout.read()
stdout.close()


script.py:

Code:
print raw_input() #just read from stdin and send to stdout


ok, but it don't work :\

someone have an ideia?

Code:
try:
    stdin, stdout = os.popen2("python script.py")
except:
    exit(1)
stdin.write("Hello World!")
stdin.close()
print stdout.read()
stdout.close()

you are also not using the methods you imported from subprocess..I assume you are going to used them later?
thesubprocess s module in later Python version is meant to replace os.popen* and other older methods.
last point : its better to structure your script.py so that you can import them into your script, instead of calling them from the shell..an example of what i mean
script.py
Code:
def printstdin():
    return raw_input()

then from your main script, you do:
Code:
import script

then you can use printstdin().
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Two problems with my python code

Hello everyone , I need your help to end my python code. I've this code in python : from ipywidgets import interact, Dropdown from ipywidgets import * from ipywidgets.embed import embed_minimal_html import pandas as pd import os import sys #################### Dropdown servers... (1 Reply)
Discussion started by: Tim2424
1 Replies

2. Programming

Popen problem

Hello all, I am reading a huge zip file in POPEN process and then writting that to a normal file which of 2GB. Now the process is failing when I looked for the cause someother process comming in after I read my file and it is deleting the zip. But in theory the popen command should read the... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies

3. Programming

question about popen in C

does popen print out the executed string result in stdout, or just evaluate it and not print the result? (30 Replies)
Discussion started by: omega666
30 Replies

4. Shell Programming and Scripting

python: what's wrong with my subprocess.Popen

my script is #!/usr/bin/env python import datetime import subprocess import sys import os import signal from time import sleep def runForAWhile(cmd, secs=10): print("running %s" % cmd) timeout = datetime.timedelta(seconds=secs) print timeout proc = subprocess.Popen(cmd,... (0 Replies)
Discussion started by: yanglei_fage
0 Replies

5. Programming

prolems with pipes and popen in c

Hi! I'm trying to write a c program. The child process must transmit to the parent a file name and the parent must count the lines from the file and return te result to the child. Here is what i've done. It doesn't stop running, I guess. I'm sorry if it's an ugly code, i'm new at this stuff,... (2 Replies)
Discussion started by: alina89
2 Replies

6. Red Hat

Python Installation problems on Redhat Enterprise Linux.

Hi All, I have to upgrade python installed on my Redhat enterprise Linux 4. I downloaded the latest python package from python website but not able to install the new package as the make command itself goes on running for more than a day. Can some help me regarding this. Is ther any method to... (2 Replies)
Discussion started by: Praveen H
2 Replies

7. Programming

using popen with background process

hi, how to work with a background process without a controlling terminal to make use of popen or system call ? when ever i use popen or system function call in foreground process, there is no problem with respect to that .. but when the same program is run as a background process without a... (7 Replies)
Discussion started by: matrixmadhan
7 Replies

8. Programming

popen and tar, please HELP!

Hi there, I'm facing a problem running the tar command with the popen function. FILE* fp = popen("tar czf - textfile","r") // output this program should give the output to the stdout. I don't know if it is possible and which function like fprint() etc. should I use. I suppose that I... (4 Replies)
Discussion started by: stef83
4 Replies

9. Programming

query in popen

hai friends I have written a tcp chat server in c.. I have designed a cgi program in c to control it... When i try to start the server from the cgi program, it is not starting. Why is that ? I have even tried giving the root ownership for all the programs.. Still its not. I have used the... (1 Reply)
Discussion started by: collins
1 Replies

10. Programming

question about popen();

Hi The following is my program to test popen() routine. The purpose is to print some contents of the corrent directory. But in fact, the output is only one character 'a', which I believe is the first char of the file "a.out". So, can anybody tell me what is wrong about this program?... (2 Replies)
Discussion started by: dell9
2 Replies
Login or Register to Ask a Question