首页 > 解决方案 > 如何只删除包含特定关键字的一行?并将该行保存到另一个文件中

问题描述

fileHandler = editFile(warehouse,'r')
fileHandler2 = open('provided_parts.txt','w')

这里我提示用户从数字列表中选择零件名称,然后检索零件名称

output = []
for part in range(quantityOfParts):
    part = partSelection()
    partName = partsList[part-1]

这部分似乎不起作用,我试图只删除 .txt 文件中包含零件名称的一行,然后将该行保存到另一个文件中(fileHandler2

for line in fileHandler:
    line = line.rstrip()
    newLine = line.split('\t')
    if partName.lower() == newLine[0].lower():
        fileHandler2.write(newLine[0])
        fileHandler2.write('\n')
        newLine[0] = '\t'
    output.append(newLine)

fileHandler.close()
fileHandler2.close()

fHand = editFile(warehouse,'w')

for part in output:
    for p in part:
        fHand.write(p)
        fHand.write('\t')
    fHand.write('\n')

fHand.close()

标签: python

解决方案


下面的示例暗示特定单词由空格包裹。如果您希望它区分大小写,请删除.lower()

line_to_be_deleted = "Hello"

fileHandler = open(warehouse, 'rw')
fileHandler2 = open('provided_parts.txt','w')

fileHandler_lines = fileHandler.readlines()
for line in fileHandler_lines:
    # write all lines except one that should be removed
    if line_to_be_deleted.lower() not in line.strip('\n').lower():
        fileHandler.write(line)
    else:
        # then write removed line into second file
        fileHandler2.write(line)

# do not forget to close files
fileHandler.close()
fileHandler2.close()

参考


推荐阅读