首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Os.walk - WindowsError:[Error 123]文件名、目录名或卷标签语法不正确:

Os.walk - WindowsError:[Error 123]文件名、目录名或卷标签语法不正确:
EN

Stack Overflow用户
提问于 2015-12-20 06:08:14
回答 1查看 2K关注 0票数 0

新的python,并寻求一些帮助,我有一个问题,与os.walk。我仔细观察了一下,找不到解决问题的正确办法。

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

但是,在代码的第一部分Python2.7中,我目前遇到了以下错误:

WindowsError:错误123文件名、目录名或卷标签语法不正确:'E:\03. Work\Bre\Files\folder2 2\图标灰度flatten._Icon_18?10不锈钢Steel.psd‘

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

我要注意的是,我从来没有在3.5或清洁标签的选定文件夹。由于Pandaspysinstaller存在3.5的问题,我希望继续使用2.7,直到3.5的错误得到解决为止。

代码语言:javascript
运行
复制
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!"

如能提供任何帮助,将不胜感激:)

EN

回答 1

Stack Overflow用户

发布于 2015-12-20 06:44:10

为了使用unicode字符遍历文件名,您需要给os.walk一个unicode路径名。

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

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

正如在Convert python filenames to unicode中所指出的,如果路径由Python2“不可解码”,有时您将得到一个字节串。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34378444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档