# coding=utf-8 import glob import pandas as pd byte = b'\r\n' # 换行符 csv_list = glob.glob('C:\\Users\\Administrator\\Desktop\\源数据\\*.csv') # 把同文件夹下的csv文件放在csv_list中 print(u'共发现%s个CSV文件' % len(csv_list)) print(u'正在处理............') for i in csv_list: fr = open(i, 'rb').read() # 把每一个CSV文件读入内存来 fr.drop_duplicates(inplace=True) with open('C:\\Users\\Administrator\\Desktop\\源数据\\result.csv', 'ab') as f: f.write(fr) # 上下文管理器写进去 file = open('C:\\Users\\Administrator\\Desktop\\源数据\\result.csv', 'ab') file.write(byte) # 追加写入换行符 print(u'合并完毕!')
时间: 2023-07-23 14:15:18 浏览: 182
#_--_coding_UTF-8_--_import_sys,os,dlib,glob,nu_PythonFace.zip
根据您提供的代码,问题出在 `fr` 这个变量上。您尝试在一个字节对象上调用 `drop_duplicates` 方法,但是字节对象并没有这个属性。`drop_duplicates` 方法是用于 Pandas 数据框的,而不是字节对象。
如果您想在处理 CSV 文件之前去除重复行,可以考虑将 CSV 文件读入 Pandas 数据框中,然后再进行去重操作。修改您的代码如下:
```python
import glob
import pandas as pd
csv_list = glob.glob('C:\\Users\\Administrator\\Desktop\\源数据\\*.csv')
print(u'共发现%s个CSV文件' % len(csv_list))
print(u'正在处理............')
result_df = pd.DataFrame() # 创建一个空的数据框用于存储结果
for i in csv_list:
df = pd.read_csv(i) # 读取CSV文件
df.drop_duplicates(inplace=True) # 去重
result_df = result_df.append(df, ignore_index=True) # 将去重后的数据追加到结果数据框中
result_df.to_csv('C:\\Users\\Administrator\\Desktop\\源数据\\result.csv', index=False) # 将结果保存为CSV文件
print(u'合并完毕!')
```
这样,您就可以通过 Pandas 的 `read_csv` 方法将 CSV 文件读入为数据框,然后使用 `drop_duplicates` 方法去除重复行,并使用 `to_csv` 方法将结果保存为新的 CSV 文件。
阅读全文