Python WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect:
Question:
I am new to programming, this is actually my first work assignment with coding. my code below is throwing an error:
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect.
I’m not able to find where the issue is.
import os
folders = ["pdcom1", "pdcom1reg", "pdcomopen"]
for folder in folders:
path = r'"C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1"'
for file in os.listdir(path):
print file
Answers:
As it solved the problem, I put it as an answer.
Don’t use single and double quotes, especially when you define a raw string with r
in front of it.
The correct call is then
path = r"C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1"
or
path = r'C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1'
I had a related issue working within Spyder, but the problem seems to be the relationship between the escape character ( “”) and the “” in the path name
Here’s my illustration and solution (note single vs double \ ):
path = 'C:UsersmyUserNameprojectsubfolder'
path # 'C:\Users\myUserName\projectsubfolder'
os.listdir(path) # gives windows error
path = 'C:\Users\myUserName\project\subfolder'
os.listdir(path) # gives expected behavior
I had a similar issue while working with Jupyter.
I was trying to copy files from one directory to another using copy function of shutil.
The problem was that I had forgotten to import the package.(Silly) But instead of python giving import error, it gave this error.
Solved by adding:
from shutil import copy
I had this problem with Django and it was because I had forgotten to start the virtual environment on the backend.
I was facing same error with Django Rest Framework, It was nothing to do with UI, still was getting this error.
I applied below solution, worked for me.
- Restarted Machine.
- Restarted Virtual Environment.
This is kind of an old question but I wanted to mentioned here the pathlib library in Python3.
If you write:
from pathlib import Path
path: str = 'C:\Users\myUserName\project\subfolder'
osDir = Path(path)
or
path: str = "C:\Users\myUserName\project\subfolder"
osDir = Path(path)
osDir will be the same result.
Also if you write it as:
path: str = "subfolder"
osDir = Path(path)
absolutePath: str = str(Path.absolute(osDir))
you will get back the absolute directory as
'C:\Users\myUserName\project\subfolder'
You can check more for the pathlib library here.
execute below
Python manage.py makemigrations
It will show missing package.
Install missing package and again run below command to make sure if nothing is missed.
Python manage.py makemigrations
It will resolve your issue.
I had the same error though I did not use the path as in your case. The solution to my problem was to install the django-extension package.
I was trying to get the file count by sending path through a .robot file to one file count function which was a pyton file, but was getting the same error message. Below is the code
import os, os.path
count = 0
def get_file_count(desired_path):
for path in os.listdir(desired_path):
if os.path.isfile(os.path.join(desired_path, path)):
count += 1
print('File Count:', count)
return count
And the robot file was like
${download_dir}= Join Path C:/Users/user/Downloads
Log ${download_dir}
${path}= Catenate SEPARATOR= r "${download_dir}"
${count}= file_count.Get File Count ${path}
Log ${count}
The ${path} was storing the value as ‘r"C:/Users/user/Downloads" but it was failing with above error message.
The solution I got for this was
import os, os.path
def get_file_count(desired_path):
count = 0
print(desired_path)
for path in os.listdir(desired_path):
if os.path.isfile(os.path.join(desired_path, path)):
count += 1
print('File Count:', count)
return count
Updated Robot file:
*** Variables ***
${path} C:UsersuserDownloads
*** Test Cases ***
Test
${count}= file_count.Get File Count ${pathhh}
Log ${count}
Just updated the path in robot file and moved count=0 inside the loop and it was working good for me.
I am new to programming, this is actually my first work assignment with coding. my code below is throwing an error:
WindowsError: [Error 123] The filename, directory name, or volume label syntax is incorrect.
I’m not able to find where the issue is.
import os
folders = ["pdcom1", "pdcom1reg", "pdcomopen"]
for folder in folders:
path = r'"C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1"'
for file in os.listdir(path):
print file
As it solved the problem, I put it as an answer.
Don’t use single and double quotes, especially when you define a raw string with r
in front of it.
The correct call is then
path = r"C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1"
or
path = r'C:AppsCorVuDATAReportsAlliDMonthly Commission ReportsOutputpdcom1'
I had a related issue working within Spyder, but the problem seems to be the relationship between the escape character ( “”) and the “” in the path name
Here’s my illustration and solution (note single vs double \ ):
path = 'C:UsersmyUserNameprojectsubfolder'
path # 'C:\Users\myUserName\projectsubfolder'
os.listdir(path) # gives windows error
path = 'C:\Users\myUserName\project\subfolder'
os.listdir(path) # gives expected behavior
I had a similar issue while working with Jupyter.
I was trying to copy files from one directory to another using copy function of shutil.
The problem was that I had forgotten to import the package.(Silly) But instead of python giving import error, it gave this error.
Solved by adding:
from shutil import copy
I had this problem with Django and it was because I had forgotten to start the virtual environment on the backend.
I was facing same error with Django Rest Framework, It was nothing to do with UI, still was getting this error.
I applied below solution, worked for me.
- Restarted Machine.
- Restarted Virtual Environment.
This is kind of an old question but I wanted to mentioned here the pathlib library in Python3.
If you write:
from pathlib import Path
path: str = 'C:\Users\myUserName\project\subfolder'
osDir = Path(path)
or
path: str = "C:\Users\myUserName\project\subfolder"
osDir = Path(path)
osDir will be the same result.
Also if you write it as:
path: str = "subfolder"
osDir = Path(path)
absolutePath: str = str(Path.absolute(osDir))
you will get back the absolute directory as
'C:\Users\myUserName\project\subfolder'
You can check more for the pathlib library here.
execute below
Python manage.py makemigrations
It will show missing package.
Install missing package and again run below command to make sure if nothing is missed.
Python manage.py makemigrations
It will resolve your issue.
I had the same error though I did not use the path as in your case. The solution to my problem was to install the django-extension package.
I was trying to get the file count by sending path through a .robot file to one file count function which was a pyton file, but was getting the same error message. Below is the code
import os, os.path
count = 0
def get_file_count(desired_path):
for path in os.listdir(desired_path):
if os.path.isfile(os.path.join(desired_path, path)):
count += 1
print('File Count:', count)
return count
And the robot file was like
${download_dir}= Join Path C:/Users/user/Downloads
Log ${download_dir}
${path}= Catenate SEPARATOR= r "${download_dir}"
${count}= file_count.Get File Count ${path}
Log ${count}
The ${path} was storing the value as ‘r"C:/Users/user/Downloads" but it was failing with above error message.
The solution I got for this was
import os, os.path
def get_file_count(desired_path):
count = 0
print(desired_path)
for path in os.listdir(desired_path):
if os.path.isfile(os.path.join(desired_path, path)):
count += 1
print('File Count:', count)
return count
Updated Robot file:
*** Variables ***
${path} C:UsersuserDownloads
*** Test Cases ***
Test
${count}= file_count.Get File Count ${pathhh}
Log ${count}
Just updated the path in robot file and moved count=0 inside the loop and it was working good for me.