2016-11-19 84 views
0

我试图使用python程序更改script.txt中的某些值。不执行文本更改功能

所以,下面的功能,使这项工作:

​​3210

xy必须引述的数字,即,例如"2""3"。 因为我需要一个循环超过xy多个值,我创建引用数字列表如下:

def quotes(x): 
    Q = '"%s"'%x 
    return Q; 

SS = list(); 
QS = list(); 

for i in range(4): 
    SS.append(i) 

for j in SS: 
    i = quotes(j) 
    QS.append(i) 

但是当我尝试运行功能textx()如下:

textx(QS[0], QS[3]) 

该程序运行时没有任何错误,但我期望script.txt文件中的0值将更改为3,但这种情况不会发生。那么,我如何才能使text x函数与QS列表的元素正常运行呢?

+0

让我们看看,如果我理解正确:你想用'3'在文本文件中,正确的,以取代所有'0'? –

+0

Hi Hai Vu,在这种情况下是的!但我需要使用列表QS来做到这一点。这是因为上面的代码只是一个草案,真正的代码将会有一个更大的复杂数字列表,然后只有一个数字会在整个代码上发生变化。 –

+0

你不需要那些刚添加的';'字符。 – martineau

回答

0

这个问题可能是因为你投入QS列表的字符串包括两个双打引号字符",所以调用字符串replace()方法失败,并没有做任何事情。

如果更改quotes()功能:

def quotes(x): 
    Q = '%s' % x 
    return Q 

那么它应该工作。这也意味着你并不真的需要有独立的SSQS名单,因为你可以只产生驱动textx()功能与此一班轮需要一个列表(假设新的列表被命名为new_list):

new_list = [str(i) for i in range(4)] 

然后用它代替QS拨打textx()
换句话说:

textx(new_list[0], new_list[3])