打开文件列表并执行脚本

苏什米塔·帕尔

我想列出所有 .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

[1] https://docs.python.org/3/library/os.html#os.listdir

[2] https://docs.python.org/3/library/os.html#os.walk

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章