开始...... Python noob ......
我的第一个目标是阅读CSV的第一行并输出。以下代码很好地做到了。
import csv
csvfile = open('some.csv','rb')
csvFileArray = []
for row in csv.reader(csvfile, delimiter = ','):
csvFileArray.append(row)
print(csvFileArray[0])
输出看起来像......
['日期','时间','CPU001用户%','CPU001系统%',......
我的第二和第三项任务涉及格式化。
因此,如果我希望print(csvFileArray [0])输出包含分隔符的“双引号”,我该如何处理它呢?
我想看看......
[“日期”,“时间”,“CPU001用户%”,“CPU001系统%”,......
我使用格式化csvFileArray字段,我可以做的就是添加或附加数据。
我也研究了'方言','引用'等等,但我到处都是。
我的最后一项任务是在每个值中添加文本(进入数组)。
示例:
[“测试日期”,“新时间”,“红色CPU001用户%”,“蓝色CPU001系统%”,......
我已经研究了很多方法来实现这一目标,但我已经采取了多种方式。
我是否应该抛弃数组,因为这太过限制了?
寻找方向并不一定是有人为我写的。
感谢。
好的......稍微改进了代码,我正在寻找方向,而不是直接解决方案(需要学习)。
import csv
with open('ba200952fd69 - Copy.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
print (row)
break
代码很好地读取CSV的第一行并输出第一行,如下所示:
['日期','时间','CPU001用户%','CPU001系统%',....
如果我想为该行中的每个/任何项添加格式,我是否会在print命令的引号内执行这些操作?示例:如果我希望每个项目都有双引号,或者前缀为“XXXX”,等等。
我已经阅读了.join类型命令等的示例,并且我确信有更简单的方法来格式化打印输出,而不是我所知道的。
再次,寻找方向,而不是立即解决方案。
答案 0 :(得分:1)
对于您的第一项任务,我建议使用next
函数来获取第一行而不是遍历整个csv。此外,查看with
块可能很有用,因为它们是处理打开和关闭文件的标准方法。
对于第二个问题,看起来您想要更改print语句的格式。请注意,它是打印字符串,由数组中每个元素周围的单引号指示。这与csv模块无关,只是因为你打印了一个字符串数组。要使用双引号打印,您必须重新格式化print语句。您可以通过某些方式查看this。
对于你的上一个问题,我建议你查看列表推导。如,
["Test " + word for word in words].
如果words = ["word1", "word2"]
,那么这将返回["Test word1", "Test word2"]
。
编辑:如果要为数组中的每个值添加不同的值,可以执行类似的操作。让prefixes
成为您要添加到同一索引位置words
中的单词的前缀数组。然后,您可以使用列表解析:
[prefix + " " + word for prefix, word in zip(prefixes, words)]