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
Asked By: AlliDeacon

||

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'
Answered By: jkalden

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
Answered By: Kevin Burns

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
Answered By: SnigA

I had this problem with Django and it was because I had forgotten to start the virtual environment on the backend.

Answered By: Peter Smiley

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.
Answered By: Omkar

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.

Answered By: bad_locality

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.

Answered By: Mohd Ahshan Danish

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.

Answered By: Wenxu

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.

Answered By: Abhishek Ranjan
Categories: questions Tags:
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.