同じタイプのファイルをバッチでマージする

要件の簡単な説明:多数の.xlsxファイルがコンピューターにダウンロードされ、.xlsxを単一の.xlsxにマージする必要があります。手動でマージするには時間がかかり、エラーが発生しやすくなります。

現在の問題:
1。xlsxは同じフォルダーに保存されますが、フォルダーには.txtやpdfなどの他の種類のファイルがあり、xlsxファイルのみをマージする必要があります
。2。各xlsxヘッダーに一貫性がない可能性があります。

import xlrd
import pandas as pd
import os

`

「python

ファイルが保存されているアドレス、つまりフォルダが読み込まれるファイルを指定します。これは絶対パスです。

dir_str = r'D:\ Mijia business \ heather \ e-コマースプラットフォーム需要調査\ JD製品評価 '



```python
## 获取指定文件夹下所有csv文件名称并传送给file_name_list,用一个list去装所有的文件
file_name_list=os.listdir(dir_str)
## 遍历出该文件夹下的所有csv格式的文件,使用for循环
file_dir_list=[os.path.join(dir_str,x) for x in file_name_list]
print(file_dir_list) ### 全部去读取到了
### 定义DataFrame类型的变量df用来存放获取的所有数据
df=pd.DataFrame()
## for 循环遍历读取每个xlsx里面的数据
for i in file_name_list:
    if(i[-9:]=='好中差评.xlsx'):   ## 筛选只读取xlsx结尾的文件,list的切片方法
        EXCEL1=pd.read_excel(file_dir_list[i])
        # concat 方法合并多个文件的数据
        df=pd.concat(df,EXCEL1)

操作結果に誤りがありました

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-82-1d65c5381c60> in <module>
      2 for i in file_name_list:
      3     if(i[-9:]=='好中差评.xlsx'):   ## 筛选只读取xlsx结尾的文件,list的切片方法
----> 4         EXCEL1=pd.read_excel(file_dir_list[i])
      5         # concat 方法合并多个文件的数据
      6         df=pd.concat(df,EXCEL1)

TypeError: list indices must be integers or slices, not st

おすすめ

転載: blog.csdn.net/weixin_42961082/article/details/109740041