Skip to content

Instantly share code, notes, and snippets.

/f.py Secret

Created June 13, 2015 16:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/82cb7f691673e0147edf to your computer and use it in GitHub Desktop.
Save anonymous/82cb7f691673e0147edf to your computer and use it in GitHub Desktop.
f.py
def f(x):
for i in range(x):
yield 2*i
print(list(f(10)))
@nifalconi
Copy link

import psycopg2

Suponemos que solamente podemos hacer consultas del tipo SELECT *

Queremos el join entre A(id int, nombre varchar(100)) y

B(id int, nombre varchar(100))

Reemplazar nombres de usuario y de la base de datos.

Ingresar otros parámetros si es necesario

conn = psycopg2.connect("dbname=XX user=XX")
curA = conn.cursor()
curB = conn.cursor()

curA.execute("SELECT * FROM A")

Supondremos que el id en ambas está en la posición 0.

Para hacerlo más elegante podemos obtener esa información del cursor.

Si queremos saber el orden de las columnas usamos el

atributo description del cursor:

print([column.name for column in curA.description])

tuplaA = curA.fetchone()
while tuplaA:
curB.execute("SELECT * FROM B")
tuplaB = curB.fetchone()
while tuplaB:
if tuplaA[0] == tuplaB[0]:
print("{} - {}".format(tuplaA, tuplaB))
tuplaB = curB.fetchone()
tuplaA = curA.fetchone()

conn.close()

@JarvanClutch
Copy link

#!/usr/bin/env python

--coding:utf-8 --

from odbAccess import *
import os
def odbReadByClutch(odb):
#寻找需要输出的集合----------------------------------------------------------------------
set_ee=odb.rootAssembly.instances['PART-1-1'].elementSets['SET-YINGBIAN']
set_ss=odb.rootAssembly.instances['PART-1-1'].elementSets['SET-ZENGQIANGCENG']
fieldStrain=odb.steps['Step-1'].frames[-1].fieldOutputs['EE']
fieldStress=odb.steps['Step-1'].frames[-1].fieldOutputs['S']
Field_EE=fieldStrain.getSubset(region=set_ee)
Field_SS=fieldStress.getSubset(region=set_ss)
#----------------------------------------------------------------------------------------
job_ee=[]
job_s11=[]
job_s22=[]
job_s33=[]
job_s12=[]
#循环读取个单元应力应变数值,以列表形式缓存。----------------------------------------------
#EE
for i in range(len(Field_EE.values)):
app_ee=Field_EE.values[i].maxPrincipal
job_ee.append(app_ee)
#S
for j in range(len(Field_SS.values)):
app_s11=Field_SS.values[j].data[0]
job_s11.append(app_s11)
for k in range(len(Field_SS.values)):
app_s22=Field_SS.values[k].data[1]
job_s22.append(app_s22)
for m in range(len(Field_SS.values)):
app_s33=Field_SS.values[m].data[2]
job_s33.append(app_s33)
for n in range(len(Field_SS.values)):
app_s12=Field_SS.values[n].data[3]
job_s12.append(app_s12)
odb.close()
#提取最大应力应变--------------------------------------------------------------------------
Max_EE=max(job_ee)
Min_EE=min(job_ee)
Max_s11=max(job_s11)
Max_s22=max(job_s22)
Max_s33=max(job_s33)
Max_s12=max(job_s12)
Min_s11=min(job_s11)
Min_s22=min(job_s22)
Min_s33=min(job_s33)
Min_s12=min(job_s12)
#以字典的形式返回结果---------------------------------------------------------------------
return {'Max_EE':Max_EE,'Min_EE':Min_EE,'Max_s11':Max_s11,'Min_s11':Min_s11,
'Max_s22':Max_s22,'Min_s22':Min_s22,'Max_s33':Max_s33,'Min_s33':Min_s33,
'Max_s12':Max_s12,'Min_s12':Min_s12}
#-----------------------------------------------------------------------------------------

#主函数
if name == "main":
#获取当前文件夹路径,并读取文件夹下的所有文件。-------------------------------------------
dir_path=os.getcwd()
fileName=os.listdir(dir_path)
xrfile=[]
#遍历所有ODB文件--------------------------------------------------------------------------
for i in range(len(fileName)):
if fileName[i][-3:]=='odb':
try:
odb=openOdb(fileName[i])
except:
newFileName='upGrade'+fileName[i]
upgradeOdb(fileName[i],newFileName)
odb=openOdb(newFileName)
xr=odbReadByClutch(odb)
xrfile.append(fileName[i])
xrfile.append(xr)
#向esfile.txt中写入读取到的数据-------------------------------------------------------------
esfile=open('esfile.txt','w')
for j in xrfile:
esfile.write(str(j))
esfile.write('\n')
esfile.close()
#提示所有过程已经结束-----------------------------------------------------------------------
print '数据提取完毕并写入esfile.txt中。'

'''
Abaqus/CAE Release 2016
Internal Version: 2015_09_25-04.31.09 126547
Run by Clutch on Sun Sep 03 2017
'''

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment