枚举glob.glob对象后未定义变量

时间:2018-05-22 08:02:11

标签: python glob

我目前有这段代码:

os.listdir("V:/FM003")
results = pd.DataFrame([])
for counter, file in enumerate(glob.glob("F5331_FM003**")):
    namedf = pd.read_csv(file, header=[0], skiprows=[0,1,2,3,4,5,6],  
    index_col=[0], usecols= [0,1])
    results = results.append(namedf)
print(namedf)

它不断返回错误" name' namedf'未定义"。任何人都可以帮我解决如何正确编写它吗?我有点难过。

3 个答案:

答案 0 :(得分:1)

实际上我认为你的问题是你的glob没有访问正确的文件夹。因此,没有找到这样的文件。

假设您正在目录V:/ FM003中查找文件,您可以考虑使用:

for counter, file in enumerate(glob.glob("V:/FM003/F5331_FM003**")):

答案 1 :(得分:1)

根据docs

  

glob.glob 路径名,*,递归=错误

     

返回与路径名匹配的可能为空的路径名列表   必须是包含路径规范的字符串

构建此类路径规范的可靠方法是使用os.path.join

import os

folder = r'V:/FM003'
files = r'F5331_FM003**'
paths = os.path.join(folder, files)

for counter, file in enumerate(paths):
    ....

答案 2 :(得分:-1)

你定义了" namedf"在for循环内部并将其打印在for循环之外。 只需在同一范围内编写print语句即可。

os.listdir("V:/FM003")
results = pd.DataFrame([])
for counter, file in enumerate(glob.glob("F5331_FM003**")):
    namedf = pd.read_csv(file, header=[0], skiprows=[0,1,2,3,4,5,6],  
    index_col=[0], usecols= [0,1])
    results = results.append(namedf)
    print(namedf)