替换所选列中的选定字符串

时间:2017-02-22 08:55:45

标签: python-2.7

我想在一个大文件的一些随机行中替换一个特定的(但是常见的)字符串 截至目前我的代码是选择随机行
我想在随机选择的行中替换属于同一列的公共字符串
输入的示例是:

ATOM      1  OH2 TIP3    1     -29.690   2.213   9.702  0.00  0.00      W1  
ATOM      2  OH2 TIP3    2       7.556 -17.910   8.218  0.00  0.00      W1  
ATOM      3  OH2 TIP3    3      33.654 -25.626  26.623  0.00  0.00      W1  
ATOM      4  OH2 TIP3    4      19.274 -19.602 -32.490  0.00  0.00      W1  
ATOM      5  OH2 TIP3    5      32.048   6.658  16.472  0.00  0.00      W1  

输出例如是:

ATOM      1  OH2 TIP3    1     -29.690   2.213   9.702  0.00  0.00      W1  
ATOM      2   UT TIP3    2       7.556 -17.910   8.218  0.00  0.00      W1  
ATOM      3  OH2 TIP3    3      33.654 -25.626  26.623  0.00  0.00      W1  
ATOM      4  OH2 TIP3    4      19.274 -19.602 -32.490  0.00  0.00      W1  
ATOM      5   UT TIP3    5      32.048   6.658  16.472  0.00  0.00      W1  

我想将随机选择的行的字符串OH2更改为UT P.S。:间距在输出中很重要 这是我现在的代码。

file=sys.argv[1]  
ncsolv=string.atoi(sys.argv[2])     # no. of random lines to select
finp = map(string.split, open(file,'r').readlines())  
atname=map( lambda line: line[2], finp)  
ndata=len(atname)      
nwat=ndata/3    
new_list=[]  
#print ncsolv,nwat  
while (len(new_list)<2):  
      k=int(random.uniform(0,nwat))  
      flag=0  
#      print k  
      for j in new_list:  
          if (j==k):  
             flag=1  
             exit  
      if (flag==0):   new_list.append(k)  

0 个答案:

没有答案