我有兩個def函數,我以嵌套方式調用並且想要在循環中調用第二個函數。目前,我只能找出如何手動調用我的名單,而非應用列表中的每個成員的語法...Python:在嵌套函數調用中應用列表
#A list of the files I want to read
afiles = [['awc_mm09c.txt','integer'], ['canopy01c.txt','real'],
['canopy10c.txt','real'], ['canopy33c.txt','real'],
['ccapnyp6c.txt','text'], ['gclass09c.txt','text'],
['nyelev09c.txt','real']]
def readfile(fn):
conn = open(ascPath + '\\' + fn, 'r')
# code to read data from the file
def rows(*columns):
# code that merges data from the other files into columns
for ID, cols in enumerate(itertools.izip(*columns)):
yield [ID] + list(cols)
# build the SQL
strQuery = "insert into foo...;"
# run some apsw (SQLite) code
c.execute("begin")
# this works. Is there any way to avoid manually listing each item in the list?
c.executemany(strQuery, rows(readfile(afiles[0][0]),
readfile(afiles[1][0]),
readfile(afiles[2][0]),
readfile(afiles[3][0]),
readfile(afiles[4][0]),
readfile(afiles[5][0]),
readfile(afiles[6][0])))
c.execute("commit")
#I've tried something like the following, but to no avail:
c.executemany(strQuery, rows(
for f in range(len(afiles_dt)):
readfile(afiles_dt[f][0])))
在此先感謝。蒂姆
太棒了!謝謝。 – Tim