读取从 Python 中的 FTP 下载的 CSV 文件未读取所有行
Reading CSV file downloaded from FTP in Python not reading all rows
我正在尝试从 FTP 中的文件夹中读取 CSV 文件。该文件有 3072 行。但是,当我 运行 代码时,它并没有读取所有行。漏掉了底部的某些行。
## FTP host name and credentials
ftp = ftplib.FTP('IP', 'username','password')
## Go to the required directory
ftp.cwd("Folder_Name")
names = ftp.nlst()
final_names= [line for line in names if '.csv' in line]
latest_time = None
latest_name = None
#os.chdir(filepath)
for name in final_names:
time1 = ftp.sendcmd("MDTM " + name)
if (latest_time is None) or (time1 > latest_time):
latest_name = name
latest_time = time1
file = open(latest_name, 'wb')
ftp.retrbinary('RETR '+ latest_name, file.write)
dat = pd.read_csv(latest_name)
要从FTP读取的CSV文件如下-
代码的输出为-
确保关闭文件,然后再尝试阅读它,使用 file.close()
,或者使用 with
更好:
with open(latest_name, 'wb') as file:
ftp.retrbinary('RETR '+ latest_name, file.write)
dat = pd.read_csv(latest_name)
如果您不需要将文件实际存储到本地文件系统,并且文件不是太大,可以只下载到内存:
我正在尝试从 FTP 中的文件夹中读取 CSV 文件。该文件有 3072 行。但是,当我 运行 代码时,它并没有读取所有行。漏掉了底部的某些行。
## FTP host name and credentials
ftp = ftplib.FTP('IP', 'username','password')
## Go to the required directory
ftp.cwd("Folder_Name")
names = ftp.nlst()
final_names= [line for line in names if '.csv' in line]
latest_time = None
latest_name = None
#os.chdir(filepath)
for name in final_names:
time1 = ftp.sendcmd("MDTM " + name)
if (latest_time is None) or (time1 > latest_time):
latest_name = name
latest_time = time1
file = open(latest_name, 'wb')
ftp.retrbinary('RETR '+ latest_name, file.write)
dat = pd.read_csv(latest_name)
要从FTP读取的CSV文件如下-
代码的输出为-
确保关闭文件,然后再尝试阅读它,使用 file.close()
,或者使用 with
更好:
with open(latest_name, 'wb') as file:
ftp.retrbinary('RETR '+ latest_name, file.write)
dat = pd.read_csv(latest_name)
如果您不需要将文件实际存储到本地文件系统,并且文件不是太大,可以只下载到内存: