python fileinput如果和

时间:2019-05-07 13:00:54

标签: python file-io

我想在文件的一行中找到值并替换它们。

当我这样做时:

def replace(file_name, name, original_value, new_value):
    for line in fileinput.input(file_name, inplace=1):
        if name in line:
            print(line)

我可以打印出“名称”出现的每一行。

如果我执行以下操作,则即使文件中该行中出现2个值,它也不会打印出该行:

def replace(file_name, name, original_value, new_value):
    for line in fileinput.input(file_name, inplace=1):
        if name in line and original_value in line:
            print(line)

我该如何做IF AND?

//Sample line in my text file
add_argument('--look_for_this',  test)

config_name = "look_for_this"     
old = 'test'
new = 'new_value'

replace(config_file, config_name, old, new)  

1 个答案:

答案 0 :(得分:1)

我尝试了如下代码,它对我有用。您必须更详细地说明问题所在!

lines = ['1. a b c', '2. c d e', '3. e f g', '4. c e']
name = 'c'
original_value = 'e'

for line in lines:
    if name in line and original_value in line:
        print(line)

产生以下输出:

2. c d e
4. c e

您所期望的是什么。因此,我只能假设您的代码中一定存在一些错误,这些错误要么提供name要么提供original_value,而不是您期望的形式。或该行的格式不符合您的期望。例如。如果您要查找特定的字节模式或类似的字节码,编码可能会成为问题。