2015-12-14 3 views
1

У меня есть приложение, которое создает csv-файлы в конце, чтобы сохранить результат. Я хочу, чтобы мое приложение для генерации различных файлов CSV на каждом приложении run.My генерирует отчет, как показано нижеСоздайте файл csv при каждом запуске

def writeToCSVFile(self,csvFilePath,testResultList): 
    #Open a CSV file object 
    reportname = "toxedo_report0.csv" 
    csvFilObj=open(csvFilePath+reportname,"wb") 
    #writing CSV file with the statistical values 
    mywritter=csv.writer(csvFilObj) 
    for rowVal in testResultList: 
     mywritter.writerows(rowVal) 
    #Closing the CSV file object 
    csvFilObj.close() 

testResultList список типов. Есть ли способ избежать жесткого кодирования имени отчета? Я хочу знать, как создавать разные отчеты для каждого запуска.

first run - C:/report/toxedo_report0.csv 
      C:/report/toxedo_report1.csv 
      C:/report/toxedo_report2.csv 

ответ

1

Просто используйте дополнительный аргумент counter:

def writeToCSVFile(self,csvFilePath,testResultList, counter): 
    #Open a CSV file object 
    reportname = "toxedo_report{}.csv".format(counter) 
    csvFilObj=open(csvFilePath+reportname,"wb") 
    #writing CSV file with the statistical values 
    mywritter=csv.writer(csvFilObj) 
    for rowVal in testResultList: 
     mywritter.writerows(rowVal) 
    #Closing the CSV file object 
    csvFilObj.close() 

Это важная строка:

reportname = "toxedo_report{}.csv".format(counter) 

{} будет заменен номером в counter.

Теперь называют так:

Первый запуск:

inst.writeToCSVFile(csvFilePath, testResultList, 0) 

Второй запуск:

inst.writeToCSVFile(csvFilePath, testResultList, 1) 

Здесь inst является экземпляром класса, который имеет метод writeToCSVFile.

+0

@PythonDev Это работает для вас? –

+0

Muller Да, это не так. Спасибо:) – PythonDev

Смежные вопросы