简体   繁体   English

如何仅删除包含特定关键字的一行? 并将该行保存到另一个文件中

[英]How to delete only one line containing a specific keyword? And save that line into another file

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

Here I am prompting user to select the part name from a number list, and then retrieving the part name在这里,我提示用户从数字列表中选择零件名称,然后检索零件名称

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

This section doesn't seem to be working, I am trying to only delete one line in .txt file that contains the part name, and then saving that line into another file ( fileHandler2 )此部分似乎不起作用,我试图仅删除 .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()

The example below implies that specific word is wrapped by spaces.下面的示例暗示特定单词由空格包裹。 if you want it to be case-sensitive, remove .lower()如果您希望它区分大小写,请删除.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()

References参考

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM