如果我将它包装在def()调用中,为什么这个python函数不起作用?

时间:2015-02-19 01:47:44

标签: python

如果代码未包含在函数duplicateDel()中,则此代码有效。对不起,我对python很新,我根本无法弄清楚为什么它会在函数内停止工作。

import sys
import csv

def duplicateDel():
    f1 = csv.reader(open('file1.csv', 'rb'))
    writer = csv.writer(open("file2.csv", "wb"))
    x = set()
    for row in f1:
        if row[3] not in x:
            writer.writerow(row)
            x.add( row[3] )

1 个答案:

答案 0 :(得分:2)

“包装”它到def,意味着您宣布您的功能进一步使用,因此,为了使用它,您需要调用它。在您的情况下,只需添加duplicateDel()

def duplicateDel():
    f1 = csv.reader(open('file1.csv', 'rb'))
    writer = csv.writer(open("file2.csv", "wb"))
    x = set()
    for row in f1:
        if row[3] not in x:
            writer.writerow(row)
            x.add( row[3] )

duplicateDel()

我认为你应该阅读更多关于函数如何在python中工作的内容。看看here