【问题标题】:Getting random element from a csv file从 csv 文件中获取随机元素
【发布时间】:2013-12-01 09:47:01
【问题描述】:

我有一个包含许多单词的 Csv 文件。我想编写一个 python3 代码,从这个文件中随机获取一个单词。由于csv.reader(file)返回的对象没有长度参数,也没有索引,所以我不知道如何随机获取一个单词。

spamReader = csv.reader(open('A3_words.csv', 'r'))
# something like:
# rnd = random.randrange(reader.length)
# word = reader[rnd]

我会给予任何帮助。

编辑:

每个单词都在一个单独的行中,如下所示:

when  
what  
make  
time 

【问题讨论】:

    标签: python csv random python-3.x


    【解决方案1】:

    此代码将从您提供的示例中生成一个随机字符串

    import csv
    import random
    
    spamReader = csv.reader(open('A3_words.csv', 'r'))
    
    data = sum([i for i in spamReader],[]) #To flatten the list
    print(random.choice(data))
    

    【讨论】:

    • 对不起。我将编辑问题。感谢您的回复。
    • 由于我的 csv 文件很小,读取整个文件的开销并不大,但是有没有办法在不读取所有元素的情况下获取一个元素?
    • 很抱歉延迟批准和投票。你的回答效果很好。谢谢。
    • @alireza 谢谢,顺便说一句,你不能阻止它读取整个 csv 文件......但是你的代码可以优化,但这超出了范围......
    猜你喜欢
    • 2018-04-18
    • 2022-01-22
    • 2015-09-22
    • 2020-10-08
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多