Script schreiben, der .csv liesst und path nach bestimmten Endung durchsucht

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
galilio
User
Beiträge: 1
Registriert: Freitag 17. Januar 2020, 08:52

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()
Antworten