+ -
当前位置:首页 → 问答吧 → 问个关于os.walk()的问题

问个关于os.walk()的问题

时间:2011-05-09

来源:互联网

今天在使用os.walk()这个方法时候遇到一个小问题,情况是这样的:
做了一个小工具,打算遍历自己硬盘上的各个分区,找到指定格式的文件,然后统一拷贝到一个文件夹里。我打算用一个config文件来配置遍历的盘符,目标文件夹,以及文件类型,整个配置文件是这样的:
Destination=E:\Temp
Source=E:\
Type=*.pdf;*.docx;*.ppt;*.doc;*.xlsx;*.xls;*.txt

之后写了一个类来读取配置文件:
class ConfigurationSettings():
    'This class is helping with reading the configuration file'
    Destination="*"
    Source="*"
    Type=list()
    def __init__(self):
        configurations = open('Config.ini','r')
        for line in configurations.readlines():
            if not line:
                break
            sector = line.split("=")
            if sector[0]=="Destination":
                self.Destination=sector[1]
            elif sector[0]=="Source":
                self.Source=sector[1]
            elif sector[0]=="Type":
                self.Type = list(sector[1].split(";"))
最后引用这个类:
parameters = ConfigurationSettings()
for root,dirs,files in os.walk(parameters.Source):
    for file in files:
        print(file)
问题来了,如果向os.walk()里传的参数是parameters.Source的话就遍历不出任何东西,但是手动改成os.walk("E:")的话,e盘下的所有文件就能遍历到。我用type(parameters.Source)得出的结果也是str。哪位大大知道是怎么回事咧,多谢啦

作者: francisk   发布时间: 2011-05-09

你用ConfigurationSettings类提取出来的是“E:\”吧,你想过"E:"和前者的不同吗?
我猜好像是这的问题吧,我也是菜鸟一个,没亲自试。

作者: 键盘男孩   发布时间: 2011-05-09