2013-08-16 16 views
7

私は私が持っているすべてのフレームで(少しの変更で)同じコマンドを実行するために、このコードを実行しようとしている:TypeError例外は:ないstrを、NULLバイトせずに文字列でなければなりません

traj.reset() 
import os 
#os.chdir(outname) 
for i, frame in enumerate(traj): 
    frame.superpose() 
    comando = "python hollow.py -c constraint -o hollow_%s.pdb urei%s.pdb" % (i, i) 
    os.system(comando) 
    pml_cmd = "pymol urei%s.pdb hollow_%s.pdb -c -d 'as cartoon, urei%s;color gray90, urei%s;center chain A;set_view (\-0.605158150,0.089404292,0.791067421,\0.795849979,0.093013920,0.598304033,\-0.020089993,0.991641700,-0.127439827,\0.000000000,0.000000000,-202.017959595,\-28.771762848,-7.683309555,10.745590210,\-568.485290527,972.520690918,-20.000000000);bg white;as sphere, hollow_%s;color cyan, hollow_%s;ray;save urei%s.png' " % (i, i, i, i, i, i, i) 
    os.system(pml_cmd) 
    #remove = "rm urei%s.pdb hollow_%s.pdb" % (i, i) 
    #os.system(remove) 
os.chdir("../") 

私はこれを実行しますそして、私はこのエラーを取得:


TypeError         Traceback (most recent call last) 
<ipython-input-8-53cd3e7bd107> in <module>() 
     7  os.system(comando) 
      8  pml_cmd = "pymol urei%s.pdb hollow_%s.pdb -c -d 'as cartoon, urei%s;color gray90, urei%s;center chain A;set_view (\-0.605158150,0.089404292,0.791067421,\0.795849979,0.093013920,0.598304033,\-0.020089993,0.991641700,-0.127439827,\0.000000000,0.000000000,-202.017959595,\-28.771762848,-7.683309555,10.745590210,\-568.485290527,972.520690918,-20.000000000);bg white;as sphere, hollow_%s;color cyan, hollow_%s;ray;save urei%s.png' " % (i, i, i, i, i, i, i) 
----> 9  os.system(pml_cmd) 
    10  #remove = "rm urei%s.pdb hollow_%s.pdb" % (i, i) 
    11  #os.system(remove) 

TypeError: must be string without null bytes, not str 

私はインターネットで検索が、私は良い答えを見つけることができません。

pml_cmd = R "PYMOLのUREI%sの:

答えて

3

問題は、文字列decleration前に "\\" または代わりに "R" を追加するために変更され、IEのいずれかをダブルエスケープする必要があります\の文字でありますどこかの文字列に沿ってNULLのcharとして解釈され、\ 0があるので、.PDB ...」

あなたは、この特定のエラーが出る

0

私はprintをコメントアウトすることによって、このエラーを解決することができた。

print(tarfileobj.split)を実行したか、またはreprを印刷したか、または\0 nullバイトを削除したか、またはそのtarfileを抽出するだけでした。

関連する問題