python - 从 FTP 文件夹中读取 csv
问题描述
我正在尝试从 FTP 文件夹中读取 csv 文件
ftp = FTP('adr')
ftp.login(user='xxxx', passwd = 'xxxxx')
r = StringIO()
ftp.retrbinary('RETR /DataLoadFolder/xxx/xxx/xxx/'+str(file_name),r.write)
r.seek(0)
csvfile1 = csv.reader(r,delimiter=';')
input_file = [list(line) for line in csv.reader(r)] ----- Error
在最后一行出现错误
new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
我的 .csv 文件
每行末尾都有空格(17:00 之后)
数据从第二行开始
错误是什么意思?任何帮助将非常感激。
解决方案
我可以部分复制和修复。该错误是由包含错误行尾的行引起的。我可以通过\r \n
在其他有效的 csv 文件末尾添加一行来重现。
一种简单的解决方法是使用过滤器来消除空行并清除行尾:
def filter_bytes(fd):
for line in fd:
line = line.strip()
if len(line) != 0:
yield(line + b'\r\n')
完成此操作后,您的代码可能变为:
ftp = FTP('adr')
ftp.login(user='xxxx', passwd = 'xxxxx')
r = BytesIO()
ftp.retrbinary('RETR /DataLoadFolder/xxx/xxx/xxx/'+str(file_name),r.write)
r.seek(0)
csvfile1 = csv.reader(filter_bytes(r),delimiter=';')
input_file = list(csvfile1)
推荐阅读
- javascript - 更新的变量不在函数之外读取
- html - 我如何知道我的网站是否在用户 PC 上生成了 cookie
- mysql - 与没有索引相比,有索引的查询性能较差
- javascript - Javascript,在事件处理程序恢复默认(DOM)之后
- php - 文件函数无法与 AWS PHP Streamwrapper 一起按预期工作
- excel - EXCEL:单元格边框的圆点线型
- python - 如何对熊猫数据框中的时间值执行逻辑测试
- java - 如何使用 ElasticSearch rest 高级客户端在任何字段中搜索任何单词?
- javascript - 我看不到我的动画,而是得到类似显示和隐藏效果的东西?
- java - 执行子字符串操作时包含分隔符