Python FileNotFoundError:
文件夹中有许多csv excel工作表。所有excel工作表仅在前3列中包含数据。我将从大量csv表中选择相应的csv表,然后打印它。下面是代码Python FileNotFoundError:,python,windows,file,Python,Windows,File,文件夹中有许多csv excel工作表。所有excel工作表仅在前3列中包含数据。我将从大量csv表中选择相应的csv表,然后打印它。下面是代码 import os path = "F:\\Users\\Desktop\\Data\\Summary" files = [] folder_data = os.listdir(path) folder_data = [i+"\\" for i in folder_data] # r=root, d=directories, f = files fo
import os
path = "F:\\Users\\Desktop\\Data\\Summary"
files = []
folder_data = os.listdir(path)
folder_data = [i+"\\" for i in folder_data]
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.csv' in file:
files.append(file)
for i, f in enumerate(files):
print(( i,f))
print('\n'.join(f'{i}-{v}' for i,v in enumerate(files)))
csv_code = str(int(input("Enter corresponding code to plot: ")))
csv_path = path + "\\" + folder_data[csv_code]
df = pd.read_csv(csv_path, header=None)
df1 = df.iloc[:,0:2]
plt.plot(df1[0], df1[1])
当我运行代码时,我希望输出显示如下,我的意思是我希望显示文件夹中的所有csv文件,以便我可以选择我想要的:
0-Test_Summary_1.csv
1-Test_Summary_2.csv
2-Test_Summary_3.csv
3-Test_Summary_4.csv
4-Test_Summary_5.csv
5-Test_Summary_6.csv etc
我得到的错误是
FileNotFoundError:
尽管csv文件存在于文件夹中。如果我正确理解了您的问题,那么您可以尝试以下方法:
import os
import pandas as pd
# see this answer about absolute paths in windows
# https://stackoverflow.com/a/7767925/9225671
base_path = os.path.join('f:', os.sep, 'Users', 'Desktop', 'Data', 'Summary')
# collect all CSV files in 'base_path' and its subfolders
csv_file_list = []
for dir_path, _, file_name_list in os.walk(base_path):
for file_name in file_name_list:
if file_name.endswith('.csv'):
# add full path to the list, not just 'file_name'
csv_file_list.append(
os.path.join(dir_path, file_name))
print('CSV files that were found:')
for i, file_path in enumerate(csv_file_list):
print(' {:3d} {}'.format(i, file_path))
selected_i = int(input('Enter corresponding number of the file to plot: '))
selected_file_path = csv_file_list[selected_i]
print('selected_file_path:', selected_file_path)
df = pd.read_csv(selected_file_path, header=None)
...
这对你有用吗?首先你要做的是文件夹\u data=[i+\\for i in folder\u data],然后再添加一个sv\u path=path+\\。因此,您得到无效的path.folder\u data=[i+\\for i in folder\u data]这一行导致使用os.path.join功能而不是通过“\”加入。我如何修改此代码?@PriyankaMishra,应用您的编码技巧。我们已经指出了问题所在,现在修复它。当我运行此代码时,文件夹中的所有csv文件都不会显示。如果显示所有csv文件,我可以选择相应的代码进行打印it@PriyankaMishra我不明白这个评论。代码的哪一部分不起作用?或者您有什么不同的期望?当我运行代码时,我希望输出显示为0-Test\u Summary\u 1.csv 1-Test\u Summary\u 2.csv 2-Test\u Summary\u 3.csv 3-Test\u Summary\u 4.csv 4-Test\u Summary\u 5.csv 5-Test\u Summary\u 6.csv等,这样我就可以选择相应的代码打印找到的csv文件:“文件夹中的所有csv文件都不是displayed@PriyankaMishra如果在“if file_name.endswith”.csv':”行之前添加printfile_name,文件是否显示为所需?