import os import shutil from fnmatch import fnmatch root = r'H:' dst_dir = r'G:' pattern = "*.tif" i = 1 for path, subdirs, files in os.walk(root): for name in files: if fnmatch(name, pattern): current_file = os.path.join(path, name) shutil.copy(current_file, dst_dir) dst_file = os.path.join(dst_dir, name) dst_new_file_name = os.path.join(dst_dir, "["+ str(i) +"] " + name) os.rename(dst_file, dst_new_file_name) print(os.path.join(path, name)) i += 1
Sunday, August 27, 2017
Use Python to find specific files from one location to another location
Python Split a large file into multiple files....
def file_split(filehandler, delimiter='\t', row_limit=25, output_name_template='output_%s.txt', output_path='F:\\Novus\\Decision Tree\\Data\\', keep_headers=True): import csv reader = csv.reader(filehandler, delimiter=delimiter) #reading the source file using csv module current_piece = 1 #identifier of the out data int number current_out_path = ''.join([output_path, output_name_template % current_piece]) #create the full path of the out data of = open(current_out_path, 'w') #open the source data current_out_writer = csv.writer(of, delimiter=delimiter) #put the source data into a variable current_limit = row_limit #set the max row limit if keep_headers: #check if the header option is True or False headers = next(reader) current_out_writer.writerow(headers) #if header is True write the header into the out file for i, row in enumerate(reader): if i + 1 > current_limit: of.close() current_piece += 1 current_limit = row_limit * current_piece current_out_path = ''.join([output_path, output_name_template % current_piece]) of = open(current_out_path, 'w') current_out_writer = csv.writer(of, delimiter=delimiter) #if the row limit is achieved then create a new out file if keep_headers: current_out_writer.writerow(headers) current_out_writer.writerow(row) of.close() file_split(open(r'F:\Novus\Decision Tree\Data\iris_data.txt', 'r'), row_limit=100, output_name_template='iris_split_%s.txt', output_path='F:\\Novus\\Decision Tree\\Data\\')
Thursday, August 24, 2017
Python dask dataframe for large data
The data that I am using here fits in memory, but dask will work even when the data is larger than memory.
import dask.dataframe as dd df = dd.read_csv(r'F:\Novus\Decision Tree\Data\iris_data_copy.txt', sep='\t', header=0, encoding='latin-1', blocksize=100**4) df.npartitions df_summary = df.groupby(['Species']).mean() print(df_summary.compute())
Subscribe to:
Posts (Atom)