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 - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
