5
我正在將數據寫入CSV文件,然後一旦完成,我將該文件複製到另一個目錄。Python在等待操作完成之前完成
這是一個循環,所以當第二次迭代開始時,它從被複制的文件中讀取數據。
問題是在第二次迭代開始時該文件仍在複製,這會導致明顯的問題。
在第二次迭代開始之前,我會如何等待循環中的整個函數完成?它應該能夠繼續進行任何次數的迭代。
for rule in substring_rules:
substring(rule)
功能:
def substring(rule, remove_rows=[]):
writer = csv.writer(open("%s%s" % (DZINE_DIR, f), "wb"))
from_column = rule.from_column
to_column = rule.to_column
reader = csv.reader(open("%s%s" % (OUTPUT_DIR, f)))
headers = reader.next()
index = 0
from_column_index = None
for head in headers:
if head == from_column:
from_column_index = index
index += 1
if to_column not in headers:
headers.append(to_column)
writer.writerow(headers)
row_index = 0
for row in reader:
if rule.get_rule_type_display() == "substring":
try:
string = rule.string.split(",")
new_value = string[0] + row[from_column_index] + string[1]
if from_column == to_column:
row[from_column_index] = new_value
else:
row.append(new_value)
except Exception, e:
print e
if row_index not in remove_rows:
writer.writerow(row)
row_index += 1
shutil.copyfile("%s%s" % (DZINE_DIR,f), "%s%s" % (OUTPUT_DIR, f))
把一個循環下其他的? – yuvi
即時通訊不知道你說什麼?循環是在...中的規則: – Harry
嗯python是一種腳本語言,並將代碼作爲同步線程運行 - 它逐行執行並執行。如果你需要一些操作在另一個之後發生,你可以把它放在下面。目前你正試圖在同一時間做所有事情 – yuvi