我正在研究一个二级项目,该项目正在搜索蛋白质数据库中与特定条件匹配的肽。
我有一个包含大部分.pdb文件的文件夹,我的游戏计划是在桌面上设置此文件,然后使用for循环扫描该文件夹中的所有文件并存储所有必要的数据。然而,我在进口阶段停滞不前。文件/目录无法识别。我附上下面的违规代码:
import os
# - - - - -
#Sector C - Iteration through a folder containing all .pdb files.
for fi in os.listdir('C:/Users/David/Desktop/pdb_Files'):
if os.path.isfile(os.path.join('C:/Users/David/Desktop/pdb_Files', fi)):
listatom,R3_coordinates,posg=[],[],[]
for line in open(fi): # < - - - Issue occurring here.
ist = line.split()
id = ist[0]
if id == 'ATOM':
typ = ist[2]
if Peptide1 == 'PRO':
if typ == 'CA':
res,toc,ac=ist[3:6]
pos = [float(i) for i in ist[6:9]]
if ac >= '0':
listatom.append([int(ist[1]),typ,res,toc,ac,np.array(pos)])
R3_coordinates.append([int(ist[1]),np.array(pos)]) #List of ALL coordinates.
if Plot == True:
posg.append(pos)
所有帮助表示赞赏。
答案 0 :(得分:2)
这是python。在你写一些内容来获取目录中的所有文件之前,请考虑这是否是其他人之前处理过的常见问题。
import glob
print glob.glob("C:/Users/David/Desktop/pdb_Files/*.pdb")
#this returns ["C:/Users/David/Desktop/pdb_Files/file1.pdb", "C:/Users/David/Desktop/pdb_Files/file2.pdb", ...]
glob模块允许您对目录中的文件进行通配符匹配,因此上面的行返回pdb_Files文件夹中以.pdb结尾的所有文件的列表。
答案 1 :(得分:1)
您需要提供open
的完整路径:
path = os.path.join('C:/Users/David/Desktop/pdb_Files', fi)
if os.path.isfile(path):
listatom,R3_coordinates,posg=[],[],[]
for line in open(path):