在python中,捞取.xlxs文件的指定一列,同时捞取.scv文件的指定一列,然后把捞出来的这两个数据进行对比,这两个数据要求是函数的返回值,新建一个指定路径,生成txt文件进行存储结果,要求结果表明数据是.xlsx文件数据不一致还是.csv文件不一致,是多了还是少了都要列出来在txt中
时间: 2024-03-02 11:49:01 浏览: 79
C++直接读取Excel文件数据.rar_C++ xls 文件_C++ 读取xls_c++excel_c++解析excel_c+
5星 · 资源好评率100%
好的,下面是一个实现该功能的代码:
```python
import pandas as pd
def read_files(file_xlsx, sheet_name_xlsx, column_name_xlsx, file_csv, column_name_csv):
# 读取xlsx文件的指定列数据
df_xlsx = pd.read_excel(file_xlsx, sheet_name=sheet_name_xlsx, usecols=[column_name_xlsx])
selected_column_xlsx = df_xlsx[column_name_xlsx].unique().tolist() # 去重
# 读取csv文件的指定列数据
df_csv = pd.read_csv(file_csv, usecols=[column_name_csv])
selected_column_csv = df_csv[column_name_csv].unique().tolist() # 去重
# 对比两个数据集的差异
diff_xlsx = [item for item in selected_column_xlsx if item not in selected_column_csv]
diff_csv = [item for item in selected_column_csv if item not in selected_column_xlsx]
# 将结果保存到txt文件
with open('result.txt', 'w') as f:
if not diff_xlsx and not diff_csv:
f.write('数据一致')
else:
if diff_xlsx:
f.write('xlsx文件数据不一致:\n')
f.write('多出来的数据:\n')
f.write(str(diff_xlsx))
f.write('\n')
if diff_csv:
f.write('csv文件数据不一致:\n')
f.write('多出来的数据:\n')
f.write(str(diff_csv))
f.write('\n')
```
该函数需要传入五个参数,分别为`.xlsx`文件的路径、要读取的工作表名称、要读取的列名称、`.csv`文件的路径以及要读取的`.csv`文件的列名称。函数的返回值是两个列表,分别存储了`.xlsx`文件和`.csv`文件中指定列的数据,并对这两个数据进行了对比,将结果保存到了一个名为`result.txt`的文件中。
需要注意的是,如果`.xlsx`文件和`.csv`文件中的指定列数据完全一致,结果文件中将会输出`数据一致`。如果有不一致的数据,将会分别输出多出来的数据以及它们属于哪个文件。另外,需要注意文件路径的正确性。
阅读全文