我想列出所有 .pdb 文件和 .ent 文件并执行脚本并打印序列,但似乎程序运行不正常,没有显示任何结果。代码是
import os
path="c:/pdb"
dirs=os.listdir(path)
for file in dirs:
list1=[]
for lines in file:
list=lines.split()
id=list[0]
if id=='ATOM' or id=='HETATM':
if list[4]=='A':
if list[2]=='C4':
list1.append(list[3])
print("The sequence is:" ,list1)
os.listdir 返回一个字符串列表 [1] 所以你不能对它们执行“文件中的行”(这样做,你只是迭代文件名字符串,而不是文件内容)。您可以为此使用 os.walk() [2],例如:
import os
path = 'c:/pdb'
for dirpath, dirnames, fnames in os.walk(path):
for fname in fnames:
if fname.endswith('txt'):
with open(os.path.join(dirpath, fname)) as fp:
for line in fp:
<program logic here>
还要记住不要使用诸如“list”或“id”之类的保留词 - 请在此处查看 docs.python.org/3.3/reference/lexical_analysis.html#keywords
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句