python - 如何只删除包含特定关键字的一行?并将该行保存到另一个文件中
问题描述
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()
解决方案
下面的示例暗示特定单词由空格包裹。如果您希望它区分大小写,请删除.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()
推荐阅读
- git - 在 GitLab 中防止将分支合并到开发中
- php - 为php结合两个正则表达式
- c++ - 使用勒让德多项式的 GSL 问题
- c# - 如何修复“无法绑定多部分标识符”单词“错误
- javascript - 是否可以使用正则表达式的捕获组在给定的源代码中剥离 javascript JSDoc?
- tsql - 根据有效日期和有效日期创建新行
- android - 日期将 GMT 添加到小时
- c# - Xamarin TabbedPage + 页眉和页脚
- git - 我对 git revert 的工作方式感到困惑
- android - Apache Cordova 自定义闪屏在 Android 和 ios 中不可见