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?
What is the error you get? I don't have Windows to verify, but a quick look into the subprocess source suggests that it uses CreateProcess(). Googling for that finds <https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx> which states """ lpCurrentDirectory [in, optional] The full path to the current directory for the process. The string can also specify a 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 > > > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > All right, but apart from the sanitation, the medicine, education, wine, > public order, irrigation, roads, a > > fresh water system, and public health, what have the Romans ever done for > us? > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor