一个文本文件10000字每行一个如何分组

2024-07-05 15:05:37 发布

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

我真的不知道从哪里开始这段代码。在

我有一个文本文件,每行有1个字,相当大的10000行。我要的是每行4个单词。在

假设我的文件是这样的。在

user1
user2
user3
user4
user5
user6
user7
user8

等等一万条线

我想做的是制作另一个文本文件,输出如下

^{pr2}$

以此类推所有这些行(每行一个字)

到目前为止,我得到了这样做的提示:

paste -d " "  - - - - < filename.txt

但这不起作用我不知道是否有一个限制,当我在一个只有10行字的文件上尝试它时,它工作得很好。但在我的大文件里,它不起作用。在

所以我想解决这个问题的方法是使用while循环或类似的方法。 我更希望它在BASH中。或者有别的方法可以做我想做的事吗?在


Tags: 文件方法代码单词paste文本文件user1user2
3条回答

在PHP中,可以使用modulus(%) operator对每个nth元素执行某些操作。在本例中,我们需要一个基于1的索引,而不是基于0的索引。在

// fake array
$days = array('day1', 'day2', 'day3', 'day4', 'day5', 'day6', 'day7', 'day8');


foreach($days as $idx => $day):
    $idx++; // required because our array is 0 based
    if(($idx % 4) == 1):
        echo '<br/>'. $day;
    else:
        echo $day;
    endif;
endforeach;

在python中,您可以枚举该文件,这将为您提供行号和行的值。将该行的值附加到一个列表中,当您是4的倍数时,写下该行。在

with open('users.txt', 'rb') as infile, with open('output.txt', 'wb') as outfile:
    output = []
    for i, line in enumerate(data):
        output.append(line)
        if (i + 1) % 4 == 0:
            outline = " ".join(output)
            outfile.write(outline)
            outfile.write(os.linesep)
            output = []

通过paste

$ paste -d' '  - - - - < file
user1 user2 user3 user4
user5 user6 user7 user8

相关问题 更多 >