Я пытаюсь использовать модуль glob
, чтобы сделать l oop, который проходит по Path
файлу для текстовых файлов и конвертирует их в csv, и вот код ниже:
import pandas as pd
import glob
import os
"""dataf_gsm_car_txt = 'gsmcarrier_mnm.txt'
dataf_gsm_rel_txt = 'gsmrelation_mnm.txt'
class push_all_to_csv(object):
def push_gsmcarrier(self):
dataf_gsm_car_txt_df = pd.read_csv(dataf_gsm_car_txt, sep=';')
dataf_gsm_car_df_column_index = list(dataf_gsm_car_txt_df.columns)
dataf_gsm_car_txt_df.reset_index(inplace=True)
dataf_gsm_car_txt_df.drop(columns=dataf_gsm_car_txt_df.columns[-1], inplace=True)
dataf_gsm_car_df_column_index = dict(zip(list(dataf_gsm_car_txt_df.columns), dataf_gsm_car_df_column_index))
dataf_gsm_car_txt_df.rename(columns=dataf_gsm_car_df_column_index, inplace=True)
dataf_gsm_car_txt_df.to_excel('gsmcarrier_mnm.xlsx', 'Sheet1', index=False)
def push_gsmrelation(self):
dataf_gsm_txt_df = pd.read_csv(dataf_gsm_rel_txt, sep=';')
dataf_gsm_rel_df_column_index = list(dataf_gsm_txt_df.columns)
dataf_gsm_txt_df.reset_index(inplace=True)
dataf_gsm_txt_df.drop(columns=dataf_gsm_txt_df.columns[-1], inplace=True)
dataf_gsm_rel_df_column_index = dict(zip(list(dataf_gsm_txt_df.columns), dataf_gsm_rel_df_column_index))
dataf_gsm_txt_df.rename(columns=dataf_gsm_rel_df_column_index, inplace=True)
dataf_gsm_txt_df.to_excel('gsmrelation_mnm.xlsx', 'Sheet1', index=False)
def push_umtscarrier(self):
dataf_umts_car_txt = 'umtscarrier_mnm.txt'
dataf_umts_car_txt_df = pd.read_csv(dataf_umts_car_txt, sep=';')
dataf_umts_car_df_column_index = list(dataf_umts_car_txt_df.columns)
dataf_umts_car_txt_df.reset_index(inplace=True)
dataf_umts_car_txt_df.drop(columns=dataf_umts_car_txt_df.columns[-1], inplace=True)
dataf_umts_car_df_column_index = dict(zip(list(dataf_umts_car_txt_df.columns), dataf_umts_car_df_column_index))
dataf_umts_car_txt_df.rename(columns=dataf_umts_car_df_column_index, inplace=True)
dataf_umts_car_txt_df.to_excel('umtscarrier_mnm.xlsx', 'Sheet1', index=False)
def push_gsmrelation(self):
dataf_umts_rel_txt = 'umtsrelation_mnm.txt'
dataf_umts_txt_df = pd.read_csv(dataf_umts_rel_txt, sep=';')
dataf_umts_rel_df_column_index = list(dataf_umts_txt_df.columns)
dataf_umts_txt_df.reset_index(inplace=True)
dataf_umts_txt_df.drop(columns=dataf_umts_txt_df.columns[-1], inplace=True)
dataf_umts_rel_df_column_index = dict(zip(list(dataf_umts_txt_df.columns), dataf_umts_rel_df_column_index))
dataf_umts_txt_df.rename(columns=dataf_umts_rel_df_column_index, inplace=True)
dataf_umts_txt_df.to_csv('umtsrelation_mnm.csv')
def get_push_all_to_csv():
return push_all_to_csv()"""
def clean(path):
df = pd.read_csv(path, sep=';')
cols = df.columns.tolist()
df = df.reset_index().drop(columns=df.columns[-1])
new_cols = dict(zip(list(df.columns), cols))
df = df.rename(columns=new_cols)
new_file_path = path.split(".")[:-1].append(".csv")
df.to_csv(path, index=False)
def main():
path = r"C:\Users\haroo501\PycharmProjects\ToolUpdated\data_feed"
pathPat = os.path.join(path, "*.txt")
all_file_name = glob.glob(pathPat)
for file_path in all_file_name:
with open(file_path) as currentFile:
print (file_path)
clean(currentFile)
if __name__ == "__main__":
main()
Я нашел эту ошибку:
Traceback (most recent call last):
File "C:/Users/haroo501/PycharmProjects/ToolUpdated/txt_to_csv/convert_to_csv.py", line 72, in <module>
main()
File "C:/Users/haroo501/PycharmProjects/ToolUpdated/txt_to_csv/convert_to_csv.py", line 68, in main
clean(currentFile)
File "C:/Users/haroo501/PycharmProjects/ToolUpdated/txt_to_csv/convert_to_csv.py", line 57, in clean
new_file_path = path.split(".")[:-1].append(".xlsx")
AttributeError: '_io.TextIOWrapper' object has no attribute 'split'