0

私はPythonプログラムを書いて、このような出力を得ました

ATOM         OW  HOH             6.016 23.68 63.478        
ATOM         OW  HOH             11.522 24.153 61.585   
ATOM         OW  HOH             10.849 26.167 62.012  
ATOM         OW  HOH             6.774 23.656 63.543  
ATOM         OW  HOH             8.255 22.341 66.519  
ATOM         OW  HOH             8.891 23.732 67.313  
ATOM         OW  HOH             9.193 25.411 67.03  
ATOM         OW  HOH             8.208 25.255 67.332  

しかし、私は次のような出力が欲しい

ATOM         OW  HOH              6.016 23.68  63.478        
ATOM         OW  HOH             11.522 24.153 61.585   
ATOM         OW  HOH             10.849 26.167 62.012  
ATOM         OW  HOH              6.774 23.656 63.543  
ATOM         OW  HOH              8.255 22.341 66.519  
ATOM         OW  HOH              8.891 23.732 67.313  
ATOM         OW  HOH              9.193 25.411 67.03  
ATOM         OW  HOH              8.208 25.255 67.332  

どんな助けもかなりのものです。

outfile2 = open('randomcoord.pdb', 'w')
hetam = 'ATOM         OW  HOH            ' + ' ' + str(round(pacord[0], 3)) + ' ' + str(round(pacord[1], 3)) + ' ' + str(round(pacord[2], 3))

            outfile2.write(hetam)

            outfile2.write('\n')
outfile2.close()
4

3 に答える 3

3

書式演算子を使用して%、丸めとパディングの両方を実行できるようにします。

with open('randomcoord.pdb', 'w') as f:
    f.write('ATOM         OW  HOH             %6.3f %6.3f %6.3f\n'
            % (pacord[0], pacord[1], pacord[2]))
于 2013-09-24T12:51:08.763 に答える
1

user4815162342 と同様ですが、最新の書式設定ツールを使用します。

hetam = 'ATOM         OW  HOH            {:6.3f} {:6.3f} {:6.3f}\n'.format(*pacord)

ファイルにを書き込んでいる場合は、次を使用することをお勧めしprintます。

with open('randomcoord.pdb', 'w') as outfile2:
    print('ATOM         OW  HOH            {:6.3f} {:6.3f} {:6.3f}'.format(*pacord), file=outfile2)
于 2013-09-24T12:56:25.917 に答える