"No such file or directory exist",但显然确实如此
"No such file or directory exist", but it obviously does
我正在尝试将多个 excel 文件导入 DataFrame 但出现错误:FileNotFoundError:[Errno 2] 没有这样的文件或目录:'test1.xlsx'
代码:
path=os.getcwd()
files = os.listdir(path+"/testimport")
df = pd.DataFrame()
for f in files:
data = pd.read_excel(f,
sheet_name = "Data",
skiprows = range(0, 4),
usecols = "B:I,P:V")
df = df.append(data)
但是,当我尝试打印文件时,它确实起作用了:
in: for f in files:
print(f)
out: test1.xlsx
test2.xlsx
这怎么可能,如何解决?我试过绝对路径但结果相同。
您应该提供输入文件的完整路径(包括目录名称)。目前,您仅提供文件名。因此,读取行应该如下所示:
data = pd.read_excel(os.path.join(path, "testimport", f), sheet_name = "Data", skiprows = range(0, 4), usecols = "B:I,P:V")
注意:os.path.join
是连接 directory/file 名称的更安全方法,否则您的代码在额外正斜杠的情况下或在不同操作系统中 运行 时容易出错.
除了已发布的答案,您实际上可以通过使用 scandir instead of listdir, which yields DirEntry 对象来简化代码,这些对象具有作为 path
属性
的完整路径
import os
df = pd.DataFrame()
for f in os.scandir(os.path.join(os.getcwd(), "testimport")):
data = pd.read_excel(
f.path,
sheet_name="Data",
skiprows=range(0, 4),
usecols = "B:I,P:V"
)
df = df.append(data)
您还可以更改当前工作目录os.chdir('./testimport'):
os.chdir('./testimport')
path=os.getcwd()
files = os.listdir(path)
df = pd.DataFrame()
for f in files:
data = pd.read_excel(f,
sheet_name = "Data",
skiprows = range(0, 4),
usecols = "B:I,P:V")
df = df.append(data)
我正在尝试将多个 excel 文件导入 DataFrame 但出现错误:FileNotFoundError:[Errno 2] 没有这样的文件或目录:'test1.xlsx'
代码:
path=os.getcwd()
files = os.listdir(path+"/testimport")
df = pd.DataFrame()
for f in files:
data = pd.read_excel(f,
sheet_name = "Data",
skiprows = range(0, 4),
usecols = "B:I,P:V")
df = df.append(data)
但是,当我尝试打印文件时,它确实起作用了:
in: for f in files:
print(f)
out: test1.xlsx
test2.xlsx
这怎么可能,如何解决?我试过绝对路径但结果相同。
您应该提供输入文件的完整路径(包括目录名称)。目前,您仅提供文件名。因此,读取行应该如下所示:
data = pd.read_excel(os.path.join(path, "testimport", f), sheet_name = "Data", skiprows = range(0, 4), usecols = "B:I,P:V")
注意:os.path.join
是连接 directory/file 名称的更安全方法,否则您的代码在额外正斜杠的情况下或在不同操作系统中 运行 时容易出错.
除了已发布的答案,您实际上可以通过使用 scandir instead of listdir, which yields DirEntry 对象来简化代码,这些对象具有作为 path
属性
import os
df = pd.DataFrame()
for f in os.scandir(os.path.join(os.getcwd(), "testimport")):
data = pd.read_excel(
f.path,
sheet_name="Data",
skiprows=range(0, 4),
usecols = "B:I,P:V"
)
df = df.append(data)
您还可以更改当前工作目录os.chdir('./testimport'):
os.chdir('./testimport')
path=os.getcwd()
files = os.listdir(path)
df = pd.DataFrame()
for f in files:
data = pd.read_excel(f,
sheet_name = "Data",
skiprows = range(0, 4),
usecols = "B:I,P:V")
df = df.append(data)