Я написал приведенный ниже код, чтобы проверить наличие трех файлов и в зависимости от того, какие файлы существуют, запустите «сканирование» файла (если файл не существует, не беспокойтесь об этом, просто запустите «сканирование» надоступные файлы) и создайте правильный выходной файл для этих доступных файлов.
Программа, над которой я работаю, содержит следующий код:
def InputScanAnswer():
scan_number = raw_input("Enter Scan Type number: ")
return scan_number
Эта функция проверяет, существуют ли эти три файла, иесли это так, присвойте конкретные значения hashcolumn
и filepathNum
def chkifexists():
list = ['file1.csv', 'file2.csv', 'file3.csv']
for filename in list:
if os.path.isfile(filename):
if filename == "file1.csv":
hashcolumn = 7
filepathNum = 5
if filename == "file2.csv":
hashcolumn = 15
filepathNum = 5
if filename == "file3.csv":
hashcolumn = 1
filepathNum = 0
#print filename, hashcolumn, filepathNum
def ScanChoice(scan_number):
if scan_number == "1":
chkifexists()
onlinescan(filename, filename + "_Online_Scan_Results.csv", hashcolumn, filepathNum) #this is what is giving me errors...
elif scan_number == "2":
print "this is scan #2"
elif scan_number =="3":
print "this is scan #3"
else:
print "Oops! Invalid selection. Please try again."
def onlinescan(FileToScan, ResultsFile, hashcolumn, filepathNum):
# web scraping stuff is done in this function
Ошибка, с которой я столкнулся - global name 'filename' is not defined
.Я понимаю, что проблема в том, что я пытаюсь отправить локальные переменные из chkifexists()
в параметры onlinescan()
.Я пытался использовать
return filename
return hashcolumn
return filepathNum
в конце функции chkifexists()
, но это тоже не работало.Есть ли способ сделать то, что я пытаюсь сделать в
onlinescan(filename, filename + "_Online_Scan_Results.csv", hashcolumn, filepathNum)
строке без с использованием глобальных переменных?Я знаю, что они обескуражены, и я надеюсь, что смогу пойти другим путем.Кроме того, имеет ли отношение к этому наличие параметров hashcolumn
и filepathNum
в onlinescan()
?