Wpis z mikrobloga

Ostatnio mam dużo pytań, ale kto pyta nie błądzi ( ͡° ͜ʖ ͡°) Także jedziemy z koksem.
Mam napisać program, który parsuje plik .dat i wyciąga z niego odpowiednie informacje. Zrobiłem dwie wersje: dla każdego pliku osobno i wersję uniwersalną (której nie umiem dokończyć). Problem jaki napotkałem, to w pierwszej kolejności otwieranie się tylko jednego pliku, a kolejna sprawa, to jak podać argumenty z jednej funkcji do drugiej? Z ostatnimi pytaniami pomogliście mircuny, może teraz też się uda () #python #naukaprogramowania
  • 13
@PeteGlorious: 1. Przy wywołaniu funkcji read file przekazujesz wartość data która zawiera informacje o jednej nazwie pliku. Jeśli chcesz przetworzyć kilka plików warto utworzyć listę lub tuple i przekazywać argumenty w pętli.
Co do podawania argumentów z jednej funkcji do drugiej. Zwracasz wartości returnem (tak jak w funkcji read_file) ale w miejscu w którym wywołujesz tą funkcje powinieneś utworzyć zmienną do której przypiszesz rezultat wykonywania funkcji:
np: data_list = read_file
@maciej1711: Dziękuję za ściągawkę :) wiem jak stworzyć tuple, bardziej mi chodziło o to o czym mówiłeś wcześniej: Jeśli chcesz przetworzyć kilka plików warto utworzyć listę lub tuple i przekazywać argumenty w pętli. Głównie chodziło mi o to przekazywanie argumentów w pętli. Co przez to rozumiesz?
zwraca dwa razy listę z tego samego pliku.


@PeteGlorious: biorąc pod uwagę popełniony błąd nie ma takiej możliwości:

def read_file(data):
__filenames = glob.glob('*.dat')


__for file in filenames:
____data = open(file)

____data_list = [] tu konkretnie

____for line in data:
______data_list += [line.split()]
__return data_list
@PeteGlorious: problem w tym że nie rozumiesz co się dzieje - co prawda ostatnio za odesłanie do dokumentacji żeby ogarnąć podstawy przed zadawaniem pytań jakiś dzban zaczął rzucać kupą na lewo i prawo, niemniej jednak wytłumaczę:

przy każdym przebiegu pętli for file in filenames tworzysz zmienną lokalną data_list o wartości początkowej równej pustej liście. w danym przebiegu lecisz przez linie w danych i je dodajesz do tej listy, co nie zmienia