如何使用 Python ftplib 通过 FTP 下载 .xls 到 Python 对象
How to download a .xls into a Python object via FTP with Python ftplib
我是Python的新手,所以如果我问错了问题,请原谅我。我有一个 .xls,我想 ftp 并将其另存为 Python 对象。目前,我采用了一种尴尬的方法,其中 [第 1 步] 我首先 ftp 文件并将其保存为 .txt(我知道 .xls->.txt 是个坏主意!),然后 [第 2 步]在 Python shell 中打开并保存该 .txt 文件。也就是说,
第 1 步:
## Import the necessary module
from ftplib import FTP
ftp = FTP('webftp.vancouver.ca')
ftp.login()
ftp.cwd('OpenData/xls')
filename = 'new_food_vendor_locations.xls'
ftp.retrbinary('RETR %s' % filename, open('myLovelyNewFile.txt', 'w').write)
ftp.quit()
这让我可以直接在当前文件中创建一个新文件 'myLovelyNewFile.txt'。在我的 Python shell 中,我有:
第 2 步:
myLovelyPython = open('myLovelyNewFile.txt','r')
for line in myLovelyPython.readlines():
print line
myLovelyPython.close()
虽然 Python 可以 运行 所有这些命令行,但由于从 xls 到 txt 的强制转换,打印的行没有正确的输入。此外,我想将 ftp-ed 对象直接保存为某个 python 对象(而不是先将其保存为 Python 之外的 .txt)。这个问题有简单的解决方案吗?
尽管我一直在寻找一种方法将 ftp 编辑的 excel 文件直接放入 Python 对象中,但如果我允许将 excel 文件保存在我的目录并再次阅读,以下工作:
ftp = FTP('webftp.vancouver.ca')
ftp.login()
ftp.cwd('OpenData/xls')
filename = 'new_food_vendor_locations.xls'
ftp.retrbinary('RETR %s' % filename, open('myLovelyNewFile.xls', 'w').write)
ftp.quit()
workbook = xlrd.open_workbook('myLovelyNewFile.xls')
worksheet = workbook.sheet_by_name('Query_vendor_food')
num_rows = worksheet.nrows - 1
curr_row = -1
while curr_row < num_rows:
curr_row += 1
row = worksheet.row(curr_row)
print row
(感谢@jacoppens 的建议。)
我是Python的新手,所以如果我问错了问题,请原谅我。我有一个 .xls,我想 ftp 并将其另存为 Python 对象。目前,我采用了一种尴尬的方法,其中 [第 1 步] 我首先 ftp 文件并将其保存为 .txt(我知道 .xls->.txt 是个坏主意!),然后 [第 2 步]在 Python shell 中打开并保存该 .txt 文件。也就是说,
第 1 步:
## Import the necessary module
from ftplib import FTP
ftp = FTP('webftp.vancouver.ca')
ftp.login()
ftp.cwd('OpenData/xls')
filename = 'new_food_vendor_locations.xls'
ftp.retrbinary('RETR %s' % filename, open('myLovelyNewFile.txt', 'w').write)
ftp.quit()
这让我可以直接在当前文件中创建一个新文件 'myLovelyNewFile.txt'。在我的 Python shell 中,我有:
第 2 步:
myLovelyPython = open('myLovelyNewFile.txt','r')
for line in myLovelyPython.readlines():
print line
myLovelyPython.close()
虽然 Python 可以 运行 所有这些命令行,但由于从 xls 到 txt 的强制转换,打印的行没有正确的输入。此外,我想将 ftp-ed 对象直接保存为某个 python 对象(而不是先将其保存为 Python 之外的 .txt)。这个问题有简单的解决方案吗?
尽管我一直在寻找一种方法将 ftp 编辑的 excel 文件直接放入 Python 对象中,但如果我允许将 excel 文件保存在我的目录并再次阅读,以下工作:
ftp = FTP('webftp.vancouver.ca')
ftp.login()
ftp.cwd('OpenData/xls')
filename = 'new_food_vendor_locations.xls'
ftp.retrbinary('RETR %s' % filename, open('myLovelyNewFile.xls', 'w').write)
ftp.quit()
workbook = xlrd.open_workbook('myLovelyNewFile.xls')
worksheet = workbook.sheet_by_name('Query_vendor_food')
num_rows = worksheet.nrows - 1
curr_row = -1
while curr_row < num_rows:
curr_row += 1
row = worksheet.row(curr_row)
print row
(感谢@jacoppens 的建议。)