On 04/29/2015 08:47 AM, Albert-Jan Roskam wrote:
Hello,
Windows has the 'feature' that the CD command does not work with UNC paths.
So in the code below, I cannot use the 'cwd' parameter of subprocess.Popen.
Therefore I use pushd/popd to accomplish the same effect. Is there a better way
to do this?
(other than using full path names everywhere, or os.chdir). Would it be a
useful improvement
of Python itself if cwd also works with UNC path?
import sys
import os
import getpass
import subprocess
path = r'\\server\share\possibly with\space'
executable = 'blah.exe'
username = os.getenv("USERNAME")
password = getpass.getpass("Enter password: ")
infile = sys.argv[1]
outfile = sys.argv[2]
cmds = ['pushd "%s" &&' % path, executable, username, password, infile, outfile, "&&
popd"]
result = subprocess.Popen(" ".join(cmds), shell=True)
error = result.stderr
if error:
raise RuntimeError(error.read())
Regards,
Albert-Jan
PS: Python 2.7 on Windows 7 32
Just a comment about Windows. There is a current directory for each
lettered drive partition. But a unc name is not necessarily on any
known drive.
And if executable, infile and outfile might have spaces within them, you
need to quote them as well.
--
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor