2015-10-14 71 views
1

我有多个子文件夹,每个文件夹都有多个文本文件。我想逐个读取每个子文件夹中的文件,进行一些更改,然后输出到具有相似名称但位于不同目录中的新子文件夹。下面是我的程序,但是当我运行它时,我只能得到一个输出文件。我究竟做错了什么?尝试使用熊猫数据框写入多个文件时的问题

import os 
rootdir = 'dir' 
for subdir, dirs, files in os.walk(rootdir): 
    for fname in files: 
      print os.path.join(subdir, fname) 
      file_path = os.path.join(subdir, fname) 
      df = pd.read_csv(file_path, sep='|', encoding='cp1252') 
      df['X1]=df['X1’].astype(str) 
      df['X2']=df['X2'].astype(str) 
      df.to_excel('out_dir\out_subfolder\fname.xlsx') 

回答

0

此行

df.to_excel('out_dir\out_subfolder\fname.xlsx') 

被保存数据帧到'out_dir\out_subfolder\fname.xlsx'

你想让它保存到:

os.path.join(out_dir, out_subfolder, fname + '.xlsx') 

所以它使用的变量,而不是固定的字符串。所以使用:

df.to_excel(os.path.join(out_dir, out_subfolder, fname + '.xlsx'))