Python 2.7 Os.walk-WindowsError:[错误123]文件名、目录名或卷标语法不正确:

Python 2.7 Os.walk-WindowsError:[错误123]文件名、目录名或卷标语法不正确:,python-2.7,os.walk,windowserror,Python 2.7,Os.walk,Windowserror,我是python新手,正在寻找关于我在os.walk中遇到的一个问题的帮助。我环顾四周,找不到解决问题的正确方法 代码的作用: 扫描用户选择的HD或文件夹,并返回所有文件名、子目录和大小。然后在pandas中(不是下面的代码)对其进行操作,并以我所需的格式导出到excel电子表格中 但是,在代码的第一部分,即Python 2.7中,我目前遇到以下错误: WindowsError:[错误123]文件名、目录名或卷标语法不正确:“E:\03。Work\Bre\Files\folder2\icons灰

我是python新手,正在寻找关于我在os.walk中遇到的一个问题的帮助。我环顾四周,找不到解决问题的正确方法

代码的作用: 扫描用户选择的HD或文件夹,并返回所有文件名、子目录和大小。然后在pandas中(不是下面的代码)对其进行操作,并以我所需的格式导出到excel电子表格中

但是,在代码的第一部分,即Python 2.7中,我目前遇到以下错误:

WindowsError:[错误123]文件名、目录名或卷标语法不正确:“E:\03。Work\Bre\Files\folder2\icons灰度展平\.\u Icon_18?10不锈钢.psd'

我已经探索过使用原始字符串(r'),但没有任何效果。也许我写错了

我会注意到,我从来没有在3.5或干净标记的选定文件夹中得到这一点。由于3.5的问题,我希望继续使用2.7,直到3.5的错误得到解决

import pandas as pd
import xlsxwriter
import os
from io import StringIO

#Lists for Pandas Dataframes   

fpath = []
fname = []
fext = []
sizec = []

# START #Select file directory to scan

filed = raw_input("\nSelect a directory to scan: ")    

#Scan the Hard-Drive and add to lists for Pandas DataFrames

print "\nGetting details..."
for root, dirs, files in os.walk(filed):
  for filename in files:
      f = os.path.abspath(root) #File path
      fpath.append(f) 
      fname.append(filename) #File name
      s = os.path.splitext(filename)[1] #File extension
      s = str(s)
      fext.append(s)
      p = os.path.join(root, filename) #File size
      si = os.stat(p).st_size
      sizec.append(si)
print "\nDone!"

任何帮助都将不胜感激:)

为了使用unicode字符遍历文件名,您需要为os.walk提供unicode路径名

您的路径包含一个unicode字符,该字符在异常中显示为

如果您传入unicode路径,像这样
os.walk(unicode(field))
您不应该得到该异常


如中所述,如果Python2的路径是“不可编辑的”,则有时会得到一个bytestring。

不是一个;所以我怀疑问题是那里还有其他真实的角色。在Windows资源管理器中打开时,文件名是什么?谢谢您的回复@Burhan Khalid。关于如何让os.walk忽略这些问题,有什么想法吗?这段代码可能会在很多混乱的hd上使用非法字符的混合。首先,尝试在Windows资源管理器中打开文件夹,看看实际文件名是什么。此文件是隐藏的,我相信root用户正在捕获它-但文件名是。\u Icon\u 1810不锈钢.psd-该正方形在中等高度显示为一个周期尝试
os.walk(unicode(field))
并查看是否得到相同的结果。