Python 2.7 替换选定列中的选定字符串

Python 2.7 替换选定列中的选定字符串,python-2.7,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

我想替换大文件中某些随机行中的特定(但常见)字符串
到目前为止,我的代码是选择随机行
我想在那些随机选择的行中替换文件中属于同一列的公共字符串
输入示例如下:

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
注意:间距在输出中很重要
这是我现在的代码

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)  
file=sys.argv[1]
ncsolv=string.atoi(sys.argv[2])#要选择的随机行数
finp=map(string.split,open(文件,'r').readlines())
atname=map(lambda行:第[2]行,finp)
ndata=len(atname)
nwat=N数据/3
新列表=[]
#打印ncsolv,nwat

while(len)(newçu list)你能给我们看一下你的代码和你在哪里被卡住了吗?或者输入/预期输出中的文件示例。没有它太宽了。@Jean-Françoisfare请给我一些想法,但你必须再次改进你的问题:请将输入和输出示例为文本。我不想重新键入它们:)@Jean-Françoisfare done