On 2023-01-04 at 12:02:55 +0000, "Weatherby,Gerard" <gweathe...@uchc.edu> wrote:
> Dealing with stdout / stderr is bash is just syntax. I don’t always > remember it off the top of my head but … stackoverflow.com. https://tldp.org/LDP/abs/html/io-redirection.html > On Linux at least it’s possible to pipe to arbitrary streams, it > seems. The following uses bash to write “Hi” to the file “third” > opened by Python. I determined the file was 5 empirically. Empirically? > import os > import subprocess > command= 'echo Hi >/dev/fd/5' > fd = os.open("third",os.O_WRONLY|os.O_CREAT) command = f"echo Hi >/dev/fd/{fd}" Or: command = f"echo Hi >&{fd}" > os.set_inheritable(fd,True) > > subprocess.run(('/usr/bin/bash','-c',command),close_fds=False) By the time I'm that far down that path, I usually write a separate function to call fork, open, close, and exec myself (old habits die hard). In the end, there's no reward for writing and maintaining shell programs in Python. -- https://mail.python.org/mailman/listinfo/python-list