You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何提取行首单词 随机抽取CSV文件中的法语单词

随机抽取CSV内法语单词的实现方案

你当前的代码直接读取整行内容,没有做表头过滤和字段分割,所以会拿到整行的法英对照内容。可以通过以下两种方式实现需求:

方案1:轻量修改现有逻辑(适用于格式简单无特殊字符的词表)

逐行读取内容后跳过第一行表头,对每行内容按逗号分割,取第一个字段就是对应的法语单词,记得提前去掉行尾的换行符:

import random
with open('data/french_words.csv', 'r', encoding='utf-8') as french_words:
    # [1:]跳过第一行表头,strip()去掉换行/首尾空格,split(',')[0]取逗号前的法语词
    word_list = [line.strip().split(',')[0] for line in french_words.readlines()[1:]]
rand_french_word = random.choice(word_list)

注意:如果词表内的字段本身包含逗号(比如带引号包裹的释义内容),这种简单字符串分割的方式会出现取值错误,更推荐用下面的标准库方案。

方案2:使用Python内置csv模块(推荐,适配所有合法CSV格式)

Python标准库自带的csv模块会自动处理CSV格式的转义、引号、特殊字符等规则,不需要手动写分割逻辑,还可以直接通过列名取值,容错性更高:

import csv
import random
with open('data/french_words.csv', 'r', encoding='utf-8') as f:
    # DictReader自动将第一行识别为列名
    reader = csv.DictReader(f)
    word_list = [row['French'] for row in reader]
rand_french_word = random.choice(word_list)

两种方案最终的rand_french_word变量都会直接存储随机抽取到的法语单词,不会附带英文释义和逗号。

小提示

  • 打开CSV文件时建议显式指定encoding='utf-8',避免不同操作系统默认编码差异导致的乱码问题
  • 万条以内的常规词表用上述全量读取的方式完全不会有性能问题,如果是超百万条的超大词表,可以先生成随机行号再跳转读取,减少内存占用

内容的提问来源于stack exchange,提问作者RosalinaTheGalaxyWolf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:54:22