我想创建一个pdf文件,目录中的每个文件夹都有多个页面。因此,如果我有50个文件夹,每个文件夹中有10个项目(csv' s),我希望每个文件夹有50个pdf文件,10个页面,pdf文件代表csv数据的图形。
我可以为这样的1个文件夹执行此操作:
import pandas as pd
import os
import matplotlib.pyplot as plt
from matplotlib.backends.backend_pdf import PdfPages
#pathway to the folder
pth = (r'C:\')
#create pdf file
with PdfPages(r'C:\.pdf') as pdf:
for f in os.listdir(pth):
# ignore the pdf file that just got created
if 'pdf' in f:
continue
# read each file
df = pd.read_csv(os.path.join(pth, f), names=['NDVI', 'Percent'])
fname=f[:-4]
df['NDVI']=df['NDVI']/df['NDVI'].sum() * 100
df2=df.plot(x='Percent', y='NDVI',title=fname)
df2.set_xlabel("Value")
df2.set_ylabel("Percent")
fig=plt.gcf()
pdf.savefig(fig)
plt.close(fig)
我不想手动改变通往不同文件夹的路径,有没有办法循环浏览文件夹并创建pdf文件?
编辑:
我可以像这样访问每个子目录和文件:
for dirName, subdirList, fileList in os.walk(pth):
print('Found directory: %s' % dirName)
for fname in fileList:
print('\t%s' % fname)
但我仍然不确定如何在每个目录中实际创建图表