繁体   English   中英

使用python编写的csv文件,在linux中打开时为空

[英]csv file written using python , is empty when opened in linux

我已经将列表中的值复制到csv文件中,例如

有2个清单说

list1 =['a','b','c','d','e','f','g','h','i','j','k','l','m','n']
list2 = ['1','2','3','4','5','6','7','8','9','10','11','12','13']

我使用以下代码将2个列表写入CSV文件

import csv
from itertools import izip
with open('output1.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(izip(list1, list2))

当我执行上述操作后在linux中打开output1.csv时,它为空

但是当我打印它时,在python脚本中使用print(open(“ output1.csv”)。read())会正确打印csv文件的内容

你能告诉我为什么我在linux中打开文件时为什么是空的吗

下次遇到困难时,请更详细地说明您期望的错误和输出,这样我们就不必浪费时间假设您的期望输出。 现在, when i open output1.csv in linux after executing the above thing , it is empty了您的问题when i open output1.csv in linux after executing the above thing , it is empty我认为您需要阅读有关迭代器以及文件操作的更多信息。 因此,在我的计算机上运行脚本会给我这个错误,这很容易理解。

TypeError: a bytes-like object is required, not 'str'

Python及其错误是如此易读,不是吗? 这个错误是正确的,因为python期望该错误表示一个类似字节的对象! 将其更改为w+ (并在答案中的链接中了解有关权限的更多信息)。 现在,这个writer.writerows(izip(list1, list2))必须清楚地理解(也在此答案的链接中提供)。 当生活给您一个迭代器时,您只需对其进行迭代! 抓住引用来迭代迭代器,您就很好了。 请详细了解。

import csv
from itertools import izip

list1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n']
list2 = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13']

with open('output1.csv', 'w+') as f:
    writer = csv.writer(f)
    writer.writerows([i for i in izip(list1, list2)]) # your homework to figure out what this means and does.

让我知道此答案是否对您有用!

干杯!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM