使用Glob获取文件夹中具有部分名称的文件名到列表

时间:2019-01-30 15:32:04

标签: python glob

我有几个文件格式相同,但值不同。 在StackOverflow用户的帮助下,我运行了代码,但是现在我正在尝试对其进行优化,而我需要一些帮助。

这是完整的代码:

//Text changed event for textBox1
private void textBox1_TextChanged(object sender, RoutedEventArgs e)
{
    //If null set to empty
    textBox1.Text = textBox1.Text ?? "";
    SetMaskedTextbox();

}

//Text changed event for textBox2
private void textBox2_TextChanged(object sender, RoutedEventArgs e)
{
    //If null set to empty
    textBox2.Text = textBox2.Text ?? "";
    SetMaskedTextbox();
}

private void SetMaskedTextbox()
{
    //Just concatenate the textbox values with the "/" and set it to the masked textbox .Text
    maskedTextbox.Text = textBox1.Text + "/" + textBox2.Text;
}

我要使用的代码如下:

import pandas as pd

# filenames
excel_names = ["file-JAN_2019.xlsx", "example-JAN_2019.xlsx", "stuff-JAN_2019.xlsx"]

# read them in
excels = [pd.ExcelFile(name) for name in excel_names]

# turn them into dataframes
frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in 
excels]
#frames = [df.iloc[20:, :] for df in frames]
frames_2 = [df.iloc[21:, :] for df in frames[1:]]
#And combine them separately
combined = pd.concat([frames[0], *frames_2])

# concatenate them..
#combined = pd.concat(frames)
combined = combined[~combined[4].isin(['-'])]
combined.dropna(subset=[4], inplace=True)

# write it out
combined.to_excel("c.xlsx", header=False, index=False)

此刻,我收到以下错误: 追溯(最近一次通话):   在第4行的文件“ finaltwek.py”中     excel_names = glob.glob('* JAN_2019-jan.xlsx') AttributeError:“函数”对象没有属性“ glob”

但是当我调整代码时,我也使代码运行了,但是它找到了文件夹中的所有文件,并且我只需要最后带有相同名称的文件,包括扩展名

我试图通过使代码查找以相同方式结尾且位于同一文件夹中的所有文件,从而使代码更具动态性,但是由于某些原因,我无法使其正常工作,有人可以帮忙吗? 谢谢

2 个答案:

答案 0 :(得分:1)

php artisan:serve将在Python解释器所在的目录中搜索。
通过使用glob.glob("*JAN_2019-jan.xlsx")os.path.join(...)指向脚本的目录,可以轻松构造文件路径:

os.path.dirname(__file__)

为我打印:

import os
import glob

excel_names = glob.glob(os.path.join(os.path.dirname(__file__), '*JAN_2019-jan.xlsx'))
print execel_names

答案 1 :(得分:0)

如果要使用glob.glob(),则应致电

import glob
#then use 
file_names = glob.glob('*.xlxs')

在您的代码中,您正在从glob文件中导入glob函数。在这种情况下,您不能使用glob.glob()。对于您的代码:

from glob import glob
excel_names = glob('*JAN_2019-jan.xlsx')