我在文件夹中有一些Excel文件。我使用下面的代码读取这些excel文件并将它们放入列表,以便可以将该列表传递到循环中以从所有这些文件中获取特定数据。
我的问题是-如果我从该文件夹中打开一个excel文件并运行脚本。打开的excel文件实例将在该文件夹中创建,脚本现在将那个临时实例作为.xlsx文件并在列表中重新限制它,将其传递到最终失败的循环-“没有这样的目录”,我找到了一种方法,可以从列表的长度到循环中添加“ -1”来避免失败。但这无效。
请为os.chdir建议任何替代方案
import pandas as pd
import glob
import os
os.chdir(r'\\servername/Files_to_Read')
files = [i for i in glob.glob('*.{}'.format('xlsx'))]
print(files)
s = 0
while(len(files) > s):
print(files[s])
df_getvalues = pd.read_excel(files[s], sheet_name="LISTS", header=None)
dfindx = (df_getvalues.index)
print("This is the index of the file - " +str(dfindx))
print(df_getvalues.iloc[dfindx,0])
s = s + 1
错误:-
FileNotFoundError:[Errno 2]没有这样的文件或目录:'C:\ Users \ $ name_of_file.xlsx'
错误表明它正在C驱动器中搜索文件,但是excel文件的实际文件夹在H驱动器中。
注意-Im正在使用Windows 10,Excel 2016和python 3.7
此问题似乎是间歇性的,重新启动后再也没有发生,并且我的VM迁移也遇到了一些问题,并且我的配置文件已手动配置,因此我不知道各种原因中的哪些因素帮助我退出了这个问题。
而且,我现在不使用OS.Chdir。这次我正在使用路径和列表目录,因为我在某处不建议使用chdir。
list_dirctry_content = os.listdir(src)
for xlfile in list_dirctry_content:
str_name_file = os.path.join(src, xlfile)
if(str_name_file.endswith('.xlsx')):
final_driving_list.append(str_name_file.strip(src))