怎么样:
import pandas as pd
import zipfile
# Create a zip file
def create_zip(srcs,dst,filenames,op):
zf = zipfile.ZipFile(dst,op,zipfile.ZIP_DEFLATED)
for src,filename in zip(srcs,filenames):
zf.write(src,filename)
zf.close()
def main():
dct = {'stu_NAME': ['student_2','student_1'],'other_info': [2,1]}
df = pd.DataFrame(dct)
groupby = df.groupby(['stu_NAME'])
zip_all_zips = []
zip_all_csvs = []
for n,g in groupby:
csv=g.to_csv(index=False)
filename = '{}{}'.format('path_',n)
filename_csv = filename + '.csv'
filename_zip = filename + '.zip'
with open(filename_csv,'w') as out_file:
out_file.write(csv)
zip_all_zips.append(filename_zip)
zip_all_csvs.append(filename_csv)
# Create a zip file for each student
create_zip([filename_csv],filename_zip,[filename_csv],'w')
# Create a zip file with all students (.zip of .zips)
create_zip(zip_all_zips,'all_students_zip.zip',zip_all_zips,'w')
# Create a zip file with all students (.zip of .csvs)
create_zip(zip_all_csvs,'all_students_csv.zip',zip_all_csvs,'w')
if __name__ == '__main__':
main()
屈服
all_students_csv.zip
path_student_1.csv
path_student_2.csv
all_students_zip.zip
path_student_1.zip
path_student_2.zip
它将创建(1)每个.csv的.zip,(2)具有所有.csv的.zip和(3)具有所有.zip的.zip。因此,您可以注释掉不需要的内容。如果要在创建.zip后删除.csv,则可以执行以下操作:
import os
for filename_csv in zip_all_csvs:
os.remove(filename_csv)
本文链接:https://www.f2er.com/3138775.html