collinsanele

ben_200_include

May 30th, 2020
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.43 KB | None | 0 0
  1. def locate_txt_files(path=os.getcwd):  
  2.     """ A function that locates and returns a list of txt files from a given path """
  3.    
  4.     txt_array = []
  5.     for item in os.listdir(path()):
  6.         if item.endswith(".txt"):
  7.             txt_array.append(item)
  8.     return txt_array
  9.            
  10.            
  11. def open_and_prepare_urls(txt_array):
  12.     """ A function that takes in a list of txt files, open each file, split("\n") and returns
  13.        a list of cleaned domains without trailing "\n" """
  14.    
  15.     domains = []
  16.     for item in txt_array:
  17.         with open(item) as f:
  18.             content = f.readlines()
  19.             domains.extend(content)
  20.     domains = [domain.strip() for domain in domains]
  21.     return domains
  22.    
  23.  
  24. def open_and_prepare_urls2(txt_file_array):
  25.     final_domains = []
  26.    
  27.     for txt_file in txt_file_array:
  28.         with open(txt_file, encoding="utf-8") as f:
  29.             content = f.read()
  30.         content = content.split("au")[0:]
  31.         domain_urls = [item.replace("|", "").replace("\n", "").replace(",", "").strip()+"au" for item in content if "." in item]
  32.         final_domains.extend(domain_urls)
  33.         print(f"Total of {len(domain_urls)} '.au' domains found in {txt_file}")
  34.         print("\n")
  35.    
  36.     return final_domains
  37.    
  38.    
  39.    
  40.    
  41.    
  42.    
  43. def make_dict(array):
  44.     """ A function that makes a dictionary ready to be fed to pandas """
  45.    
  46.     a = []
  47.     b = []
  48.    
  49.     for item in array:
  50.         a.append(item[0])
  51.         b.append(item[1])
  52.        
  53.     my_dict = {"Domain":pd.Series(a), "Phone Number":pd.Series(b)}
  54.    
  55.     return my_dict
  56.        
  57.  
  58.  
  59. def make_dict2(result_array, filename="results.csv", path=os.getcwd):
  60.     """ A function that updates an exixting csv file (look at make_dataframe function) """
  61.    
  62.     df1 = pd.read_csv(filename)
  63.     domains = df1["Domain"].tolist()
  64.     phones = df1["Phone Number"].tolist()
  65.  
  66.     for item in result_array:
  67.         domains.append(item[0])
  68.         phones.append(item[1])
  69.  
  70.     my_dict = {"Domain":pd.Series(domains), "Phone Number":pd.Series(phones)}
  71.  
  72.     return my_dict
  73.    
  74.    
  75. def make_dataframe(dic, filename="results.csv", path=os.getcwd):
  76.     """" A function that takes in a dict and makes a pd dataframe """
  77.     try:
  78.         df__ = pd.DataFrame(dic)
  79.         df__ = df__.drop_duplicates()
  80.         return df__
  81.     except Exception as e:
  82.         #print(e)
  83.         pass
  84.  
  85.  
  86. def save_dataframe(data_f):
  87.     """ A function that takes in a pandas dataframe and saves it as a csv file """
  88.    
  89.     data_f.to_csv("results.csv", index=False)
  90.     print("Done")
  91.  
  92.    
  93.    
  94. def check_for_04(arg):
  95.     arg = str(arg).replace(" ", "").replace("(", "").replace("-", "").replace(".", "").strip()
  96.     if arg.startswith("04") or arg.startswith("4"):
  97.         return True
  98.     else:
  99.         return False
  100.  
  101.  
  102.        
  103.        
  104.        
  105. def create_04(filename="results.csv", dest_filename="results_04.csv"):
  106.    
  107.     """ create phones that start with 04 """
  108.    
  109.     a = []
  110.     b = []
  111.    
  112.     try:
  113.         df2 = pd.read_csv(dest_filename)
  114.         domains_ = df1["Domain"].tolist()
  115.         phones_ = df1["Phone Number"].tolist()
  116.     except:
  117.         pass
  118.        
  119.    
  120.     df1 = pd.read_csv(filename)
  121.     domains = df1["Domain"].tolist()
  122.     phones = df1["Phone Number"].tolist()
  123.    
  124.     try:
  125.         domains.extend(domains_)
  126.         phones.extend(phones_)
  127.        
  128.     except:
  129.         pass
  130.    
  131.     for index, phone in enumerate(phones):
  132.         if check_for_04(phone):
  133.             a.append(phones[index])
  134.             b.append(domains[index])
  135.             del phones[index]
  136.             del domains[index]
  137.            
  138.     my_dict = {"Domain":pd.Series(b), "Phone Number":pd.Series(a)}
  139.     dframe = make_dataframe(dic=my_dict)
  140.    
  141.     my_dict2 = {"Domain":pd.Series(domains), "Phone Number":pd.Series(phones)}
  142.     df_2 = make_dataframe(dic=my_dict2)
  143.     save_dataframe(df_2)
  144.     dframe.to_csv(dest_filename, index=False)
  145.     print("Created 04..phone numbers!")
  146.    
  147.    
  148.    
  149.    
  150. def main():
  151.     #result = [] #list of tuple containing domain and phone
  152.    
  153.     if filename in os.listdir(path()):
  154.         dict_ = make_dict2(result_array=results)
  155.         dataframe = make_dataframe(dic=dict_)
  156.         save_dataframe(data_f=dataframe)
  157.         create_04()
  158.        
  159.        
  160.     else:
  161.         dic = make_dict(array=results)
  162.         dataframe2 = make_dataframe(dic=dic)
  163.         save_dataframe(data_f=dataframe2)
  164.         create_04()  
  165.        
  166.        
  167.     print("Done!")
Add Comment
Please, Sign In to add comment