Hallo zusammen,
ich möchte einen Script, der .csv datei liesst und Path rekursiv nach bestimmten Endungen (.qml) durchsucht.
Das .csv Datei sieht wie folgende aus:
Import,Version number
import QtQuick,2.9
import QtQuick.XmlListModel,2.0
import QtQuick.Particles,2.0
import QtQuick.Window,2.3
import QtQuickControls,1.5
import QtQuick.Controls,2.2
import QtQuick.Dialogs,1.2
import QtQuick.Layouts,1.3
Idee wäre der Path rekursiv nach diesem Endungen (.qml) zu durchsuchen und dann die die gefunden Datei nach diesem .csv zu durchsuchen.
Ich muss zugeben, dann ich in einen Anfänger was Python angeht.
Folgende habe ich versucht:
import argparse
# from enum import Enum
import os.path
import csv
import sys
import pprint
# import itertools
# from pathlib import Path
# import traceback
import pathlib
import os
import glob
__version__ = 'v1.00'
csv_importFile_Path = pathlib.Path("importFile.csv")
inputPath = "C:\temp"
qmlPath = "D:\\temp"
class CheckQtQuickImport:
def __init__(self, inputPath):
"Initialize the class members"
self.version = __version__
self._setInPath(inputPath)
def check_csv_path(self):
exist = False
if(os.path.exists(csv_importFile_Path)):
print("File", csv_importFile_Path, "exist")
exist = True
else:
print("File", csv_importFile_Path, "does not exist!!")
exist = False
return exist
def csv_dict_list(self, csv_importFile_Path):
with open(csv_importFile_Path, 'r') as fh:
reader = csv.DictReader(fh)
dict_list = []
for row in reader:
dict_list.append(row)
print("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
# print("dict_list", dict_list)
# print(dict(row))
print ("----------------------------------------")
print(row['Import'], row['Version number'])
# print("-----------------------------------------")
# print(row['Import'])
# print("----------------------------------------")
# print(row['Version number'])
# print("----------------------------------------")
# print('*****************', len(dict_list))
print("dict_list[5]", dict_list[5])
print("key", reader.line_num)
return dict_list
def findAncheckQuickImport(self, qmlPath):
print("hello Check Start")
with open(qmlPath) as f:
# TODO qmlPath check
dicList= self.csv_dict_list(csv_importFile_Path)
print("test", dicList)
if 'import QtQuick' in f.read():
print("true-----------")
def getQML(self):
count = 0
for filename in glob.iglob(self.inPathname + '/**/*.qml', recursive=True):
count+=1
nameList = []
nameList.append(filename)
# TODO searchMetho
# self.findAncheckQuickImport(filename)
print(nameList, sep = "\n")
print("number of QML file : ", count)
print("---------nameList of QML File start")
return nameList
def _setInPath(self, inputPath):
self.inPathname = inputPath
if __name__ == '__main__':
my_CheckQtQuickImport = CheckQtQuickImport(inputPath)
print("Hello CheckQtQuickImport!")
my_CheckQtQuickImport.check_csv_path()
# my_CheckQtQuickImport.findAncheckQuickImport(qmlPath)
# my_CheckQtQuickImport.openCSVFile()
my_CheckQtQuickImport.csv_dict_list(csv_importFile_Path)
# Calls the csv_dict_list function, passing the named csv
# device_values = my_CheckQtQuickImport.csv_dict_list(variables_file)
# print(device_values)
print("\n")
# Prints the results nice and pretty like
# print("#############################################################################")
# print(my_CheckQtQuickImport.csv_dict_list(variables_file))
# pprint.pprint(device_values)
my_CheckQtQuickImport.getQML()