使用 Python 下载和查看 CSV
Downloading and Viewing CSV with Python
对 python 很陌生,正在尝试通过 FTP 下载 CSV。
我已将连接转到正确的文件夹,但我还想打印表格。
import pandas as pd
from ftplib import FTP
ftp = FTP('f20-preview.xxx.com')
ftp.login(user='xxx_test', passwd = 'xxxxxxx')
ftp.cwd('/testfolder/')
def grabFile():
filename = 'MOCK_DATA.csv'
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
data = pd.read_csv(filename)
data.head()
这会导致 nameError,文件名未定义?我可能会混淆自己,所以澄清会有所帮助。
您能否使用 absolute/full 路径而不只是 CSV 文件的名称?我的猜测是它在错误的文件夹中查找。
在您的代码中,您正在定义一个函数,永远不要调用它,然后您期望在该函数中找到一个定义的变量。
解决问题的一种方法是完全消除带有 def
的行。
一个可能更好的解决方案是这样的
import pandas as pd
from ftplib import FTP
# reusable method to retrieve a file
def grabFile(ftp_obj, filename):
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
# connect to the ftp server
ftp = FTP('f20-preview.xxx.com')
ftp.login(user='xxx_test', passwd = 'xxxxxxx')
ftp.cwd('/testfolder/')
# then get files and work them
# having a "target file"
filename = 'MOCK_DATA.csv'
# grab the file
grabFile(ftp, filename)
# work the file
data = pd.read_csv(filename)
data.head()
# now you could still use the same connected ftp object and grab another file, and so on
鉴于您提供的功能,python 脚本的工作目录和 CSV 的存储位置必须相同。
但是,您没有调用该函数。
如果您调用该函数并得到相同的错误,那么很可能 MOCK_DATA.csv 不在位置 /testfolder/MOCK_DATA.csv 中,您将 运行 遇到问题。
访问它的方法是删除 def grabFile。
您没有调用 "grabfile" 函数。但其他答案似乎有助于缓解该问题,因此我将仅分享一些用于处理数据集的生活质量代码
我经常将我的数据文件存储在与 python 代码不同的文件夹中,因此如果您希望将输入数据放在另一个文件夹中,这可以帮助您保持井然有序。
import os
import pandas as pd
original_dir = os.getcwd()
os.chdir('/home/user/RestOfPath/')
data = pd.read_csv('Filename')
os.chdir(original_dir)
data.head()
对 python 很陌生,正在尝试通过 FTP 下载 CSV。 我已将连接转到正确的文件夹,但我还想打印表格。
import pandas as pd
from ftplib import FTP
ftp = FTP('f20-preview.xxx.com')
ftp.login(user='xxx_test', passwd = 'xxxxxxx')
ftp.cwd('/testfolder/')
def grabFile():
filename = 'MOCK_DATA.csv'
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
data = pd.read_csv(filename)
data.head()
这会导致 nameError,文件名未定义?我可能会混淆自己,所以澄清会有所帮助。
您能否使用 absolute/full 路径而不只是 CSV 文件的名称?我的猜测是它在错误的文件夹中查找。
在您的代码中,您正在定义一个函数,永远不要调用它,然后您期望在该函数中找到一个定义的变量。
解决问题的一种方法是完全消除带有 def
的行。
一个可能更好的解决方案是这样的
import pandas as pd
from ftplib import FTP
# reusable method to retrieve a file
def grabFile(ftp_obj, filename):
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
# connect to the ftp server
ftp = FTP('f20-preview.xxx.com')
ftp.login(user='xxx_test', passwd = 'xxxxxxx')
ftp.cwd('/testfolder/')
# then get files and work them
# having a "target file"
filename = 'MOCK_DATA.csv'
# grab the file
grabFile(ftp, filename)
# work the file
data = pd.read_csv(filename)
data.head()
# now you could still use the same connected ftp object and grab another file, and so on
鉴于您提供的功能,python 脚本的工作目录和 CSV 的存储位置必须相同。
但是,您没有调用该函数。
如果您调用该函数并得到相同的错误,那么很可能 MOCK_DATA.csv 不在位置 /testfolder/MOCK_DATA.csv 中,您将 运行 遇到问题。
访问它的方法是删除 def grabFile。
您没有调用 "grabfile" 函数。但其他答案似乎有助于缓解该问题,因此我将仅分享一些用于处理数据集的生活质量代码
我经常将我的数据文件存储在与 python 代码不同的文件夹中,因此如果您希望将输入数据放在另一个文件夹中,这可以帮助您保持井然有序。
import os
import pandas as pd
original_dir = os.getcwd()
os.chdir('/home/user/RestOfPath/')
data = pd.read_csv('Filename')
os.chdir(original_dir)
data.head()