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