Skip to content
Advertisement

OSError: [Errno 22] Invalid argument: – Changing backslash to forward slash not helping! (Windows)

I am working with streamlit to create a tool that takes user input (csv file name) and cleans/produces output as a dataframe. I continuously get OSError: [Errno 22] Invalid argument: ‘M:/Desktop/AutomationProject/’

I am aware of all the past solves of this error, however they all say change backslash to forward slash on windows and this is a quick fix, however after doing this I still have the same issue.

Note my tool still works when inputting the file name, just consistently shows an error (below)

Thanks in advance for your help!

Code:

JavaScript

OSError: [Errno 22] Invalid argument: ‘M:/Desktop/AutomationProject/’ Traceback: File “C:Usersadavie18.condaenvsprojectenvlibsite->packagesstreamlitscriptrunnerscript_runner.py”, line 475, in _run_script exec(code, module.dict) File “M:DesktopAutomationProjectAutocallApp.py”, line 176, in express_gbp = pd.read_csv(“M:/Desktop/AutomationProject/” + autocall_gbp_file) File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasutil_decorators.py”, >line 311, in wrapper return func(*args, **kwargs) File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasioparsersreaders.py”, >line 680, in read_csv return _read(filepath_or_buffer, kwds) File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasioparsersreaders.py”, >line 575, in _read parser = TextFileReader(filepath_or_buffer, **kwds) File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasioparsersreaders.py”, >line 933, in init self._engine = self._make_engine(f, self.engine) File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasioparsersreaders.py”, >line 1217, in _make_engine self.handles = get_handle( # type: ignore[call-overload] File “C:Usersadavie18.condaenvsprojectenvlibsite-packagespandasiocommon.py”, line 789, >in get_handle handle = open(

Advertisement

Answer

The usual best practice to keep OS paths consistent across platforms in pythong is using the os module:

JavaScript

This helps keep consistency across platforms, so you can avoid meticulous string formatting

Advertisement