python - 如何在输出文件中返回输入文件的第 k 个元素?

我有一个文本输入文件:

AAA
BBB
CCC
DDD
EEE
FFF,FFF
GGG

我想将该文件的每第 k 行复制到一个输出文本文件中。例如,对于 k=2,它将是:

BBB
DDD
FFF FFF

对于k = 3,它应该是

CCC
FFF FFF

这是我到目前为止所做的,我正在努力寻找如何在函数中识别 K。你能帮帮我吗?

def ex1 (filen1, filen2, k):
    fp1=open(filen1,'r') #open file to read from
    fp2=open(filen2,'a') #open file to write to
    
    count=1 #number of lines which have been copied
    
    for line in fp1:
        line = next(str(filen1))
        list.append(line.strip())
        fp1.readline
    return list     
fp1.close
fp2.close    
ex1('Input file.txt', 'Output.txt')

最佳答案

您的代码甚至无法读取输入文件的内容。如果你的文件不是很大,你会遇到内存问题,你可以这样做。打开第一个文件并将所有行读入列表,其中每个条目都是一个新行。 也尝试使用 with 语句打开文件,因为它会自动再次关闭文件(通常这是更好的做法)。

然后您只需执行相反的操作并将行写入另一个文件,但是您只需索引行列表,使其从第 k-1 个元素开始并且只包含每个第 k 个元素。

k = 2

with open(filen1, 'r') as input_file:
    lines = input_file.readlines()

with open(filen2, 'w') as output_file:
    for line in lines[k-1::k]:
        output_file.write(line)

https://stackoverflow.com/questions/65354039/

相关文章:

javascript - 如何在 Nestjs 中扩展多个 dto 类

python - , 运算符用在条件语句的右侧时有何作用?

r - 如何使用 dplyr 在 R 中转置数据帧?

r - 有没有办法根据名称自动执行 R 中列的乘法?

javascript - 轻松设置 react redux with next.js (React)

c# - Windows 窗体在没有文本框的情况下添加文本

google-apps-script - 无法读取 null 的属性 'getSheetByName

bash - 删除重复行立即忽略第一个字段

r - as.integer(8952) = 8951?

python - 从 Pandas 数据框中同一字段的所有其他行中减去一行字段中的值