Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
Ask 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:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"'
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:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1"
path = r'C:\Apps\CorVu\DATA\Reports\AlliD\Monthly Commission Reports\Output\pdcom1'
–
–
–
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:\Users\myUserName\project\subfolder'
path # 'C:\\Users\\myUserName\\project\subfolder'
os.listdir(path) # gives windows error
path = 'C:\\Users\\myUserName\\project\\subfolder'
os.listdir(path) # gives expected behavior
–
–
–
–
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)
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.
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 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.
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 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:\Users\user\Downloads
*** Test Cases ***
${count}= file_count.Get File Count ${path}
Log ${count}
Just updated the path in robot file and moved count=0 inside the loop and it was working good for me.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.