我目前有这段代码:
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'未定义"。任何人都可以帮我解决如何正确编写它吗?我有点难过。
答案 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)