mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Issue #25596: Falls back to listdir in glob for bytes paths on Windows.
This commit is contained in:
		
							parent
							
								
									1de1a6a2dc
								
							
						
					
					
						commit
						c98b26a6ac
					
				
					 1 changed files with 16 additions and 7 deletions
				
			
		
							
								
								
									
										23
									
								
								Lib/glob.py
									
										
									
									
									
								
							
							
						
						
									
										23
									
								
								Lib/glob.py
									
										
									
									
									
								
							| 
						 | 
					@ -118,13 +118,22 @@ def _iterdir(dirname, dironly):
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            dirname = os.curdir
 | 
					            dirname = os.curdir
 | 
				
			||||||
    try:
 | 
					    try:
 | 
				
			||||||
        with os.scandir(dirname) as it:
 | 
					        if os.name == 'nt' and isinstance(dirname, bytes):
 | 
				
			||||||
            for entry in it:
 | 
					            names = os.listdir(dirname)
 | 
				
			||||||
                try:
 | 
					            if dironly:
 | 
				
			||||||
                    if not dironly or entry.is_dir():
 | 
					                for name in names:
 | 
				
			||||||
                        yield entry.name
 | 
					                    if os.path.isdir(os.path.join(dirname, name)):
 | 
				
			||||||
                except OSError:
 | 
					                        yield name
 | 
				
			||||||
                    pass
 | 
					            else:
 | 
				
			||||||
 | 
					                yield from names
 | 
				
			||||||
 | 
					        else:
 | 
				
			||||||
 | 
					            with os.scandir(dirname) as it:
 | 
				
			||||||
 | 
					                for entry in it:
 | 
				
			||||||
 | 
					                    try:
 | 
				
			||||||
 | 
					                        if not dironly or entry.is_dir():
 | 
				
			||||||
 | 
					                            yield entry.name
 | 
				
			||||||
 | 
					                    except OSError:
 | 
				
			||||||
 | 
					                        pass
 | 
				
			||||||
    except OSError:
 | 
					    except OSError:
 | 
				
			||||||
        return
 | 
					        return
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue