Python Forum
Subprocess.Popen() not working when reading file path from csv file
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Subprocess.Popen() not working when reading file path from csv file
#1
I am a beginner at python coding.

I wrote a simple code that lists a number of programs and asks the user to choose one of the programs. It will then open a website with the version history of that program, and, where it exists, run the updater of the program.

Initially I wrote the program manually writing out the list of programs (20) and then manually write out the url and, where relevant, the path and file name to the updater. Something like:

if choice == 1
   url = 'https://blablabla'
   prg = 'C:\\Program Files\\blablabla'
After manually defining the URL and prg variables for all 20 options, I run:

webbrowser.open_new_tab(url)
subprocess.Popen(prg)
This works fine.

Then I tried to write the code where the list of programs and the url and file paths are listed in a .csv file. The values for the url and prg variables are read from the .csv file (using numpy load.txt)

webbrowser.open_new_tab(url)
works fine

However:

subprocess.Popen(prg)
gives an error message if the file path has a blank space in it (which is in 19 out of the 20 options). The error message is:

Error:
Traceback (most recent call last): File "test.py", line 32, in <module> mainmenu() File "test.py", line 30, in mainmenu subprocess.Popen(prg) File "C:\Users\zorin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 858, in _init__ self._execute_child(args, executable, preexec_fn, close_fds, File "C:\Users\zorin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 1311, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, FileNotFoundError: [WinError 2] The system cannot find the file specified
One example:

In the original (long-winded)code I manually set the full file name for Chrome:
prg = 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
and

subprocess.Popen(prg)
runs Chrome without a problem.

In the updated code the same full file name is read into prg, but this time

subprocess.Popen(prg)
gives the above-mentioned error code (if the file path has a black space it).

In the new code
print(prg)
will give:
Output:
C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe
so the correct value is read into the variable.

Any suggestions what I am doing wrong?

I use Windows
Reply


Messages In This Thread
Subprocess.Popen() not working when reading file path from csv file - by herwin - May-03-2021, 07:51 PM

Possibly Related Threads…
Thread Author Replies Views Last Post
  File Handling not working properly TheLummen 8 750 Feb-17-2024, 07:47 PM
Last Post: TheLummen
  Absolute paths in subprocess - file not found kittyticker 4 497 Jan-28-2024, 10:37 PM
Last Post: kittyticker
  file open "file not found error" shanoger 8 1,146 Dec-14-2023, 08:03 AM
Last Post: shanoger
Information subprocess.Popen() suddenly giving me grief? davecotter 3 626 Dec-13-2023, 10:49 PM
Last Post: davecotter
  working directory if using windows path-variable chitarup 2 740 Nov-28-2023, 11:36 PM
Last Post: chitarup
Sad problems with reading csv file. MassiJames 3 644 Nov-16-2023, 03:41 PM
Last Post: snippsat
  Use PM4PY and create working file thomaskissas33 0 672 Nov-14-2023, 06:53 AM
Last Post: thomaskissas33
  Reading in of line not working? garynewport 2 850 Sep-19-2023, 02:22 PM
Last Post: snippsat
  Need to replace a string with a file (HTML file) tester_V 1 774 Aug-30-2023, 03:42 AM
Last Post: Larz60+
  Reading a file name fron a folder on my desktop Fiona 4 919 Aug-23-2023, 11:11 AM
Last Post: Axel_Erfurt

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020