Python Script FTP目录下每个压缩csv文件的列数



对于python来说非常新,但是我很确定这是一个更容易的操作,但是我有问题。

我在FTP服务器上有一个目录,它有大约1k个zip文件夹,每个文件夹都有一个csv文件。问题是随着时间的推移添加了列。我要做的就是得到每个csv中的列数。有了这些信息,我就可以运行正确的ssis包了。

我认为只计算第一行就可以了,否则它将取csv中每一行的平均值。(数据没有用"包装字符串)

请帮忙就太好了。

您可以首先识别FTP站点中的所有zip文件,然后逐个打开它们,并在每个zip文件中加载所有csv文件。一旦您加载了csv文件,您就可以计算列的数量,然后移动到下一个文件/zip:

import glob
import pandas as pd
import zipfile
num_columns = 0
directoryPath = "./"
# Go through all zip files in the FTP site
for zip_file_name in glob.glob(directoryPath+'*.zip'):
# Identify csv files inside the zip folder
zip = zipfile.ZipFile(zip_file_name)
# list available files in the container
files_in_folder = zip.namelist()
# load all the csv files
for csv_file in files_in_folder:  
df = pd.read_csv(zip.open(csv_file))

#count number of columns: 
num_columns += len(df.columns)
print("Total number of columns: ", num_columns)

最新更新