从文本文件中删除一行中的特定字符



我的文本文件是:

CREATE TABLE `redirect` (
`rd_from` int(8) unsigned NOT NULL DEFAULT 0,
`rd_namespace` int(11) NOT NULL DEFAULT 0,
`rd_title` varbinary(255) NOT NULL DEFAULT '',
`rd_interwiki` varbinary(32) DEFAULT NULL,
`rd_fragment` varbinary(255) DEFAULT NULL,
PRIMARY KEY (`rd_from`),
KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`)
) ENGINE=InnoDB DEFAULT CHARSET=binary ROW_FORMAT=COMPRESSED;

我的目标是删除文本,即:

,
PRIMARY KEY (`rd_from`),  

我正在使用这个代码(PYTHON)(没有完成我的目标)。非常感谢你的帮助。

with open('filepath.txt', 
mode = "r", errors='ignore') as file:
with open("filepath.txt", mode = "w", errors='ignore') as newfile:

badline = [",nPRIMARY KEY (`rd_from`),"]
for lines in file:     
for word in badline:
lines = lines.replace(word, ' ')
newfile.write(lines) 

对于file.readlines(),您需要循环遍历行,并且您搜索badline将不匹配任何内容,因为每个n都断行。

相反,您可以使用file.read()获得单个字符串:

badline = "nPRIMARY KEY (`rd_from`),"
with open('filepath.txt', mode = "r", errors='ignore') as file:
remaining = file.read().replace(badline, '')
with open("filepath.txt", mode = "w", errors='ignore') as newfile:
newfile.write(remaining)

此外,如果您删除前面的下面的,,您可能会破坏文件内容的语法:

badline = [",'nPRIMARY KEY (`rd_from`),"]

badline = "nPRIMARY KEY (`rd_from`),"

…或阅读命令行工具sed🤷‍

最新更新