Python csv.reader再次打印最后一行

时间:2019-06-18 11:44:41

标签: python python-3.x list csv

我有两列用逗号分隔的英文句子文本文件,并将它们翻译成另一种语言,每个翻译对在新行上显示,例如

i like cats,me gustan los gatos    
hello,hola

我想打开该文件,只获取该对的第二部分(翻译),并列出这些翻译。我已经使用了显示的代码。但是,输出是总是在列表之后的末尾再次打印最后一个项目,这是我不希望的。

with open('translate_outputs.txt', newline ='') as translations:
    translation_reader = csv.reader(translations, delimiter = ',')
    for translation in translation_reader:
        just_translation = translation[1].lower()
        translation_list = []
        translation_list.append(just_translation)
        print(translation_list)

预期结果:

['me gustan los gatos']  
['hola']

实际结果:

['me gustan los gatos']  
['hola']  
hola

1 个答案:

答案 0 :(得分:1)

提供预期输出的代码的缩写版本。
(我删除了添加到列表的内容)

Mode <- function(x) {
  ux <- unique(x)
  ux[which.max(tabulate(match(x, ux)))]
}


data.frame(index, fruit) %>%
   mutate(grouping = phonetic(fruit)) %>%
   group_by(grouping) %>% 
   mutate(fruit = Mode(fruit))
# A tibble: 5 x 3
# Groups:   grouping [2]
#  index fruit     grouping
#  <dbl> <fct>     <chr>   
#1     1 Apple Pie A141    
#2     2 Apple Pie A141    
#3     3 Apple Pie A141    
#4     4 Apple Pie A141    
#5     5 Pear      P600    

输出

import csv

with open('translate_outputs.txt', newline='') as translations:
    translation_reader = csv.reader(translations, delimiter=',')
    for translation in translation_reader:
        print(translation[1].lower())