我试图计算的平均长度的路径在一个tsv文件。路径中的项目由“”分隔;“。tsvfile看起来像这样。
格式:[hashedIpAddress] [timestamp] [durationInSec] [path] [rating]
6a3701d319fc3754 1297740409 166 14th_century;15th_century;16th_century;Pacific_Ocean;Atlantic_Ocean;Accra;Africa;Atlantic_slave_trade;African_slave_trade NULL
3824310e536af032 1344753412 88 14th_century;Europe;Africa;Atlantic_slave_trade;African_slave_trade 3
415612e93584d30e 1349298640 138 14th_century;Niger;Nigeria;British_Empire;Slavery;Africa;Atlantic_slave_trade;African_slave_trade NULL
我的代码是这样的:
import csv
count=0
with open('paths_finished.tsv', 'rb') as tsvfile:
a = csv.reader(tsvfile,dialect='excel-tab')
for row in a:
# if row[3:4] == ';':
# count++
print row[1:4]
我怎么数';”在文件?
3条答案
按热度按时间iovurdzv1#
使用 indexing,而不是slicing,来获取单个列:
拆分
';'
上的特定列文本将得到一个元素列表;len()
告诉你有多少个元素。或者,计算
;
个字符,加一:但也许你也想对路径元素本身做些什么。
为了得到所有路径的平均长度,我只使用
.count()
:在这种情况下,您甚至不必使用
csv
模块;你根本不需要将行拆分成行,其他列中没有;
分号,所以更简单的解决方案是循环遍历文件的行:q8l4jmvw2#
我只使用
;
作为分隔符,如果您的唯一目标是计算分号,则使用len(row) - 1
。即
qni6mghb3#
可以使用
split
方法:这将计算行中
;
个字符的数量。如果要计算按;
拆分的元素,请删除-1
部分