我想寫一個腳本,1.列出目錄的內容,創建一個列表(temp.txt),將列表變成一個字符串,並將其寫入文件2。打開另一個文本文件(t.txt),並將打開的文件的內容與先前保存的文件(temp.txt)進行比較並返回差異。這個想法是,腳本能夠判斷文件夾中是否有新文件。該功能DIF作爲一個獨立的腳本的偉大工程,但作爲嵌套函數時,我收到此錯誤信息:蟒蛇分配變量混亂
Enter directory > /users
Traceback (most recent call last):
File "/Users/alkopop79/NetBeansProjects/comparefiles.py", line 33, in <module>
dir()
File "/Users/alkopop79/NetBeansProjects/comparefiles.py", line 12, in dir
li.append(fname)
UnboundLocalError: local variable 'li' referenced before assignment
和腳本:
import os
li = []
lu = []
le = []
def dir():
dir = raw_input("Enter directory > ")
path=dir # insert the path to the directory of interest
dirList=os.listdir(path)
for fname in dirList:
li.append(fname)
li = ','.join(str(n) for n in li)
targetfile = open("temp.txt", 'w')
targetfile.write(li)
targetfile.close()
print li
def open_file():
txt = open('t.txt')
li = txt.read()
la = li.split()
return la
print len(li)
def open_another():
txt = open('temp.txt')
lu = txt.read()
lo = lu.split()
return lo
print len(li)
dir()
a = open_file()
b = open_another()
print set(a) & set(b)
我的基本建議是要避免使用全局變量('li','lu','le')。請記住,Python函數可以接受參數並可以返回一個或多個值。 – NPE
'dir'是一個內置函數的名稱,不應該像這樣隱藏。 –