def run(self): if checkfile(self.filepath)[0] and checkfile(self.filepath)[1] == 1: self.singFile = True if self.connect_to_server(): self.filefinder = FileFinder(self) self.filefinder.recycle = False self.filefinder.list_flie(self.filepath) elif checkfile(self.filepath)[0] and checkfile(self.filepath)[1] == 0: self.singFile = False self.findfileOver = False if self.connect_to_server(): print(dict('cd') + os.path.basename(self.filepath)) self.commandThread.send_command( COMMANE_FILE_INFO + divider_arg + os.path.basename(self.filepath) + divider_arg + '-1' + divider_arg + str(msg_index)) while self.waitingCreateDir: time.sleep(0.1) self.waitingCreateDir = True self.filefinder = FileFinder(self) self.filefinder.recycle = False self.filefinder.list_flie(self.filepath) self.findfileOver = True elif not checkfile(self.filepath)[0]: print(dict('picf'))
def run(self): if checkfile(self.filepath)[0] and checkfile(self.filepath)[1] == 1: # 文件 self.singFile = True if self.connect_to_server(): self.filefinder = FileFinder(self) self.filefinder.recycle = False self.filefinder.list_flie(self.filepath) elif checkfile(self.filepath)[0] and checkfile(self.filepath)[1] == 0: # 目录 self.singFile = False self.findfileOver = False if self.connect_to_server(): print('创建文件夹' + os.path.basename(self.filepath)) self.commandThread.send_command(COMMANE_FILE_INFO + divider_arg+ os.path.basename(self.filepath) + divider_arg + '-1' +divider_arg + str(msg_index)) while self.waitingCreateDir: #等待服务端(接收端的目录创建完成) time.sleep(0.1) self.waitingCreateDir = True self.filefinder = FileFinder(self) self.filefinder.recycle = False self.filefinder.list_flie(self.filepath) # 主体的循环,调用OnFindDir,OnFindFile self.findfileOver = True # 结束传输 elif not checkfile(self.filepath)[0]: print('请输入正确的文件路径')
def parse_PDB(pdb_file): u.checkfile(pdb_file) atom_names = [] res_names = [] res_ids = [] atom_coord = [] with open(pdb_file) as f: for line in f: # Read Atoms if line[0:4] == 'ATOM' or line[0:6] == 'HETATM': atom_names.append(line[12:15]) res_names.append(line[17:19]) try: res_ids.append(int(line[22:25])) except ValueError: res_ids.append(None) x = float(line[30:37]) y = float(line[38:45]) z = float(line[46:53]) atom_coord.append([x, y, z]) return atom_coord
def keyInSavePath(): while True: filepath = input(dict('pidp')) if checkfile(filepath)[0] and checkfile(filepath)[1] == 0: return filepath, True elif not checkfile(filepath)[0]: warning(dict('pde')) elif checkfile(filepath)[0] and checkfile(filepath)[1] == 1: warning(dict('dpif'))
def keyInSavePath(): ''' 输入存储的文件加路径 ''' while True: filepath = input('请输入文件夹路径') if checkfile(filepath)[0] and checkfile(filepath)[1] == 0: return filepath, True elif not checkfile(filepath)[0]: warning('该路径下不存在任何文件') elif checkfile(filepath)[0] and checkfile(filepath)[1] == 1: warning('这个路径指向一个文件')
def keyInFilePath(): while True: filepath = input('请输入文件或者文件夹的路径:') if filepath.endswith(dir_divider()): filepath2 = filepath[:len(filepath)-1] else: filepath2 = filepath if checkfile(filepath2)[0]: return filepath2, True else: print('该路径下不存在任何东西')
def keyInFilePath(): while True: filepath = input(dict('pif')) if filepath.endswith(dir_divider()): filepath2 = filepath[:len(filepath) - 1] else: filepath2 = filepath if checkfile(filepath2)[0]: return filepath2, True else: print(dict('pde'))
def parse_MOL2(mol2_file): u.checkfile(mol2_file) atom_names = [] atom_types = [] res_names = [] res_ids = [] atom_coord = [] with open(mol2_file) as f: while True: line = f.readline() if not line: break # Read initial lines if line[0:17] == '@<TRIPOS>MOLECULE': f.readline() info = f.readline().split() NAtoms = int(info[0]) try: NRes = int(info[2]) except: NRes = 1 # Read Atoms elif line[0:13] == '@<TRIPOS>ATOM': for i in range(NAtoms): data = f.readline().split() # save data for the old one atom_names.append(data[1]) atom_types.append(data[5]) atom_coord.append(map(float, data[2:5])) return atom_coord
filepath_ok = True port_ok = True host_ok = False if args.port and args.port > 0 : port = args.port if port == default_command_socket_port: warning('%s %d %s,%s' % ('端口',default_command_socket_port,'不可用','请输入其他的数字')) port , port_ok = keyInPort() elif args.port and args.port <=0: warning('端口号必须为正整数') port, port_ok = keyInPort() filepath = args.filepath if not filepath: filepath , filepath_ok = keyInFilePath() elif not checkfile(args.filepath)[0]: warning('该路径下不存在任何文件') filepath , filepath_ok = keyInFilePath() host = args.host if not host: host , host_ok = keyInHost() else: host_ok = True if port_ok and filepath_ok and host_ok: findercallback = MyfinderCallback() if not checkfile(filepath)[1]: print('%s %s' % ('在此查找文件:',filepath)) FileFinder_Fast(findercallback).list_flie(filepath) global sumsize
'--host', required=False, help=(dict('thtp')), type=str) args = parser.parse_args() port = default_data_socket_port port_ok = True host_ok = False save_path_ok = False save_path = args.dir if not save_path: save_path = 'downloads' if checkfile(save_path)[0] and checkfile(save_path)[1] == 0: if not os.path.exists(save_path): os.makedirs(save_path) save_path_ok = True else: if not checkfile(save_path)[0]: warning(dict('pde')) save_path, save_path_ok = keyInSavePath() else: save_path_ok = True if args.host: host = args.host host_ok = True else: host = '0.0.0.0' host_ok = True
def parse_input(infile): '''Returns a Dictionary with dipole types, and a list of tuples for points of application of the dipoles. The keys of dipole types dictionary are the flags set ny the user in the input. Each value is a tuple. The first element of the tuple is a list containing the Dipolar Strength, the Excitation energy and the damping. The second element of the tuple is a flag defining the type of polarizability to calculate (electric or magnetic). The third element of the tuple if present only for magnetic polarizabilities and it is the bj coefficient. For application points, the data are tuples of 3 elements. Each tuple contains, as first element, the center expressed in terms of atom indexes and, as second element, the weight to be applied on the first element of the list. As third element, we have a list of dipoles to be applied in that point. The dipole is described through a list containing the dipole type and its orientation, in terms of atomic indexes.''' u.checkfile(infile) type_counter = 0 center_counter = 0 dipole_types = {} centers = [] with open(infile) as f: while True: line = f.readline() if not line: break if line.strip(): if line.startswith('#'): continue # Create Dipole Types Dictionary elif line.split()[0].lower() == 'type': type_counter += 1 type_flag = line.split()[1] # Try to read TYPE definition without optional keyword try: dipole = map(float, line.split()[2:]) pol_type = 'ele' dipole_types[type_flag] = (map(float, line.split()[2:]), pol_type) # Read TYPE definition with optional keyword except ValueError: pol_type = line.split()[-2] bj = float(line.split()[-1]) dipole_types[type_flag] = (map(float, line.split()[2:-2]), pol_type, bj) type_counter += 1 # Centers elif line.split()[0].lower() == 'center': center_counter += 1 weight = float(line.split()[1]) atom_idx = u.extend_compact_list(line.split()[2:]) # Adjust indices to Python's numeration atom_idx = map(lambda x: x - 1, atom_idx) data = f.readline().strip() # Retrieve dipoles applied in this center dipoles = [] while True: if not data or data.split()[0].lower() != 'dipole': break data = data.split() dip_type = [data[1]] dip_ori = data[2:] if len(dip_ori) == 2: dip_ori = u.extend_compact_list(dip_ori) elif len(dip_ori) > 2: theta = float(dip_ori[-1]) dip_ori = u.extend_compact_list(dip_ori[:-1]) dip_ori = dip_ori + [theta] dipole = dip_type + dip_ori dipoles.append(dipole) data = f.readline().strip() centers.append((atom_idx, weight, dipoles)) # Dipoles elif line.split()[0].lower() == 'dipole': if center_counter == 0: print(u.banner(text='ERROR', ch='#', length=80)) print print(" You defined a DIPOLE before assigning it a CENTER in %s" % infile) print sys.exit() # dipole_counter += 1 if type_counter == 0: print(u.banner(text='ERROR', ch='#', length=80)) print print(" No dipole TYPE has been defined in %s" % infile) print sys.exit() return dipole_types, centers
def parse_XYZ(xyz_file): u.checkfile(xyz_file) struct = np.loadtxt(xyz_file, skiprows=2, usecols=[1, 2, 3]) return struct.tolist()