遍历文件并处理i

2024-10-02 08:20:58 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想有一个函数,可以读取一个文件,并能够计算其中的内容。到目前为止,我有:

import csv
def get_stats(train_file, valid_pfile = "cmu-phonemes.txt", valid_graphemes = 
{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '_'}):

    invalid_row = 0
    valid_row = 0
    phonemes_count = 0
    graphemes_count = 0
    underscore_count = 0

    csv_open = open(train_file)
    reader = csv.reader(csv_open)

    with open(valid_pfile) as valid_p:
        valid_pset = set(line.strip() for line in valid_p)
    valid_gset = set(valid_graphemes)

你可能会怀疑,我想算出一些具体的数字。但这并不一定难。问题是我无法找到一种方法来遍历文件并对其进行进一步计数。你知道吗

下面是一个示例文件:

phonemes,graphemes
W IY K D EY,w ee k d ay
T EH K S T,t e x _ t
Y UW,ewe _
SH UW T,chu te
SH UW T,chu te
SH UW T,chu te !
SX AH K,s u ck

问题是如何遍历文件并用中间的“,”分隔它们(csv格式) 所以我可以吃点

[["SH", "UW", "T"],["chu", "te"]]

或者类似的东西,可以用来循环和检查。你知道吗


Tags: 文件csvcountshtrainopenuwfile
1条回答
网友
1楼 · 发布于 2024-10-02 08:20:58
file_output = []
with open(valid_pfile, 'r') as f:
    for line in f.readlines()[1:]: # ignoring the first line which is header
       file_output.append([v.split() for v in line.split(',')])

在此块之后,file_output的值将是:

[[['W', 'IY', 'K', 'D', 'EY'], ['w', 'ee', 'k', 'd', 'ay']],
 [['T', 'EH', 'K', 'S', 'T'], ['t', 'e', 'x', '_', 't']],
 [['Y', 'UW'], ['ewe', '_']],
 [['SH', 'UW', 'T'], ['chu', 'te']],
 [['SH', 'UW', 'T'], ['chu', 'te']],
 [['SH', 'UW', 'T'], ['chu', 'te', '!']],
 [['SX', 'AH', 'K'], ['s', 'u', 'ck']]]

现在,你可以用你想用的方式。你知道吗

相关问题 更多 >

    热门问题