I've got three files as follows:
1:
#!/usr/bin/env python3
#
# file: experiment.py
#
# A simple python program that takes parameters.
import sys
info = sys.argv[1:]
print(info)
with open("/home/alex/junk.txt", 'w') as file_object:
for item in info:
file_object.write(''.join((item,'\n')))
2:
#!/bin/bash
#
# file: call.sh
# Demonstrates running a local python script on another host
# with command line arguments specified locally.
ssh -p22 alex@10.10.10.10 python3 -u - one two three <
/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py
3:
#!/usr/bin/env python3
#
# file: call.py
import os
import shlex
import subprocess
script = "/home/alex/Py/BackUp/Sandbox/Scripted/experiment.py"
if os.path.isfile(script):
print("File exists on local machine.")
else:
print("No such file.")
command = (
"ssh -p22 alex@10.10.10.10 python3 -u - one two three < {}"
.format(script))
ret = subprocess.call(shlex.split(command))
if ret:
print("Command failed!!")
else:
print("All's well.")
Running the shell script (2) executes a single shell command and leaves
the junk.txt file at 10.10.10.10 as desired.
Calling the same shell command using the subprocess module from with in
a python script (3) does not work:
alex@X301n3:~/Py/BackUp/Sandbox/Scripted$ ./call.py
File exists on local machine.
bash: /home/alex/Py/BackUp/Sandbox/Scripted/experiment.py: No such file
or directory
Command failed!!
I'm doing this using Ubuntu14.04LTS.
Thanks in advance for any suggestions as to how to proceed.
Alex
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor