Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 填充替换将清空文件_Python_Python 3.x_File Io - Fatal编程技术网

Python 填充替换将清空文件

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

我试图替换一些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[core.lower()]['benchmarks.tls']), end='')
实际上,即使条件失败,infle模块也不应该清空文件

这方面的任何输入都会很有帮助

当您的测试通过时,您只需打印,因此任何未通过测试的行都不会出现在新文件中(
FileInput
with
inplace=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
处理符号链接的目标,而不是符号链接本身。