如何在文本文件中每隔一行写一行?

2024-04-26 01:14:32 发布

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

inputFile = open('original_text.txt','r')
outputFile = open('half_text.txt','w')

line = inputFile.readline()
count = 0 
for line in inputFile:
    outputFile.write(line)
    count += 1
    if count % 2 == 0:
        print(line)

inputFile.close()
outputFile.close()

它总是跳过第一行。例如,文本文件现在有10行。所以它打印了第三五七和第九。所以我错过了第一个。在


Tags: textintxtforclosereadlineifcount
3条回答

这将跳过第一行,因为您在循环之前阅读并丢弃它。删除第4行

line = inputFile.readline()

Add将count奇偶校验更改为奇数

^{pr2}$

要获得稍微好一点的设计,请使用可切换的布尔值:

count = False
for line in inputFile:
    outputFile.write(line)
    count = not count
    if count:
        print(line)

inputFile.close()
outputFile.close()

我试着自己运行程序:

inputFile = open('this_file.py', 'r')

count = False

    outputFile.write(line)

    if count:



outputFile.close()

使用next跳过下一行。如果有奇数行,则可能需要在调用next(fh)时观察StopIteration错误。在

outputFile = open('half_text.txt','w')

with open('original_text.txt') as fh:
    for line1 in fh:
        outputFile.write(line1)
        try:
            next(fh)
        except StopIteration:
            pass

outputFile.close()

for循环将逐行遍历文件,当您使用readline时,它将在循环内向前移动指针。因此odd将遍历奇数行,even将遍历偶数行。在

with open (path, 'r') as fi:
    for odd in fi:
        even = fi.readline()
        print ('this line is odd! :' + odd)
        print ('this line is even! :' + even)

相关问题 更多 >