需要一个python程序完成指定需求,内容如下: 1.能够解析指定地址的指定.xlsx文件,并且抓出该文件中指定的子表格中指定的某一列。同时在把该列抓取出来之前,做简单筛选,去掉重复项。 2.能够解析指定地址的指定.csv文件,并且抓出该文件中指定的某一列。 3.把1,2两步中抓取的两个不同的列数据进行对比,只要数据有不一样的地方,在指定地点创建一个TXT文件存储不一样的地方。
时间: 2024-03-01 19:50:54 浏览: 69
文件:123456.xlsx的内容解析
好的,这个需求可以通过Python实现。需要用到以下几个库:pandas、xlrd、csv。
具体实现步骤如下:
1. 使用pandas库读取指定地址的.xlsx文件,并且抓出该文件中指定的子表格中指定的某一列。同时在把该列抓取出来之前,做简单筛选,去掉重复项。具体代码如下:
``` python
import pandas as pd
# 读取指定xlsx文件中的某个子表格,并选取指定列,去重后返回该列数据
def read_xlsx_file(file_path, sheet_name, column_name):
df = pd.read_excel(file_path, sheet_name=sheet_name)
selected_column = df[column_name].unique().tolist() # 去重
return selected_column
```
2. 使用pandas库读取指定地址的.csv文件,并且抓出该文件中指定的某一列。具体代码如下:
``` python
import pandas as pd
# 读取指定csv文件中的指定列并返回
def read_csv_file(file_path, column_name):
df = pd.read_csv(file_path)
selected_column = df[column_name].tolist()
return selected_column
```
3. 使用difflib库,比较1,2两步中抓取的两个不同的列数据,并将结果保存至指定地点的TXT文件中。具体代码如下:
``` python
import difflib
# 将两个列表中的不同项保存至指定TXT文件
def compare_columns(column1, column2, result_file_path):
diff = difflib.ndiff(column1, column2)
with open(result_file_path, 'w') as f:
for line in diff:
if line.startswith('+') or line.startswith('-'):
f.write(line)
```
最后,将上述三个函数组合起来,即可实现指定需求。
完整代码如下:
``` python
import pandas as pd
import difflib
# 读取指定xlsx文件中的某个子表格,并选取指定列,去重后返回该列数据
def read_xlsx_file(file_path, sheet_name, column_name):
df = pd.read_excel(file_path, sheet_name=sheet_name)
selected_column = df[column_name].unique().tolist() # 去重
return selected_column
# 读取指定csv文件中的指定列并返回
def read_csv_file(file_path, column_name):
df = pd.read_csv(file_path)
selected_column = df[column_name].tolist()
return selected_column
# 将两个列表中的不同项保存至指定TXT文件
def compare_columns(column1, column2, result_file_path):
diff = difflib.ndiff(column1, column2)
with open(result_file_path, 'w') as f:
for line in diff:
if line.startswith('+') or line.startswith('-'):
f.write(line)
# 测试代码
xlsx_file_path = 'test.xlsx'
xlsx_sheet_name = 'Sheet1'
xlsx_column_name = 'Name'
xlsx_selected_column = read_xlsx_file(xlsx_file_path, xlsx_sheet_name, xlsx_column_name)
print(xlsx_selected_column)
csv_file_path = 'test.csv'
csv_column_name = 'Name'
csv_selected_column = read_csv_file(csv_file_path, csv_column_name)
print(csv_selected_column)
result_file_path = 'result.txt'
compare_columns(xlsx_selected_column, csv_selected_column, result_file_path)
```
其中,test.xlsx和test.csv是用于测试的.xlsx和.csv文件。在测试时,可以自行修改文件路径、sheet名字、列名等参数。最终结果会保存至指定的TXT文件中。
阅读全文