Python 填充替换将清空文件
我试图替换一些html行 但它会导致空文件 我正在检查行是否有特定的字符串,并尝试替换它Python 填充替换将清空文件,python,python-3.x,file-io,Python,Python 3.x,File Io,我试图替换一些html行 但它会导致空文件 我正在检查行是否有特定的字符串,并尝试替换它 with fileinput.FileInput(bmark_file, inplace=True, backup='.bak') as file: for line in file : unique="id="+core if unique in line: print(line.replace(link['href'], vboard[co
with fileinput.FileInput(bmark_file, inplace=True, backup='.bak') as file:
for line in file :
unique="id="+core
if unique in line:
print(line.replace(link['href'], vboard[core.lower()]['benchmarks.tls']), end='')
实际上,即使条件失败,infle模块也不应该清空文件
这方面的任何输入都会很有帮助当您的测试通过时,您只需打印,因此任何未通过测试的行都不会出现在新文件中(FileInput
withinplace=True
将原始文件替换为发送到sys.stdout
的任何文件;如果不发送任何内容,则不会写入任何内容)。如果希望其他行不加更改地通过,则需要在else
案例中输出原始行:
with fileinput.FileInput(bmark_file, inplace=True, backup='.bak') as file:
for line in file :
unique="id="+core
if unique in line:
print(line.replace(link['href'], vboard[core.lower()]['benchmarks.tls']), end='')
else:
print(line, end='') # Or just sys.stdout.write(line)
您的文件最终为空这一事实意味着
行内唯一的测试从未通过,因此您可能期望不存在数据。此代码中的任何内容都不应清空文件。这必须发生在您没有向我们展示的其他代码中。次要提示:核心此代码中从未更改。您可能应该定义>在for
循环的上方唯一的,只是为了避免在每个循环上重新创建相同的字符串。谢谢@ShadowRangerBut现在我有另一个问题,如果文件“bmark\u file”在代码中是soflink,此代码删除软链接。此代码上的任何输入都将helpful@Ganga:一般来说,你应该单独问一个问题。在这种情况下,答案很简单;将bmark_file
包装到中,让FileInput
处理符号链接的目标,而不是符号链接本身。