0
votes

En utilisant csv, je veux sélectionner une ligne aléatoire avec des données et extraire les données afin que S = chansons et A = artiste, répétez

Ma tentative ci-dessous, pouvez-vous aider à l'améliorer, merci d'avance.

def Start():
    with open('Songs.csv') as Data #Call file
    Read = csv.reader(Data,delimiter=':', quotechar='|')#return tuple of songs and artists
    for row in Read :
        X = random.choice(row)#random selection
        Store = (','.join(X))#(Song,Artist)
        A = re.compile(‘,’)
        for s in finditer(Store):
            POS = s.start()#positional arg for slicing
            global Song
            Song = X[POS:]#song,
            global Artist
            Artist = X[:POS]#Artist
            print(Song)


4 commentaires

Votre exemple contient des erreurs de syntaxe. Cela ne peut pas être le code que vous exécutez.


Veuillez déplacer le texte de la question vers le message lui-même et garder la question sous forme de titre court et clair.


S'il vous plaît, envoyez un exemple de ce qu'il y a dans Songs.csv


AKX c'est une expression brute non testée de mon problème donc je n'ai pas encore pu le tester.


3 Réponses :


0
votes

Pls. corrigez-moi, si je ne comprends pas la question correctement, mais je pense qu'il serait plus facile de lire ce fichier csv avec des pandas.

comme:

import pandas as pd

songs = pd.read_csv("Songs.csv", header=False, sep =",")

Ensuite, le premier col de votre dataframe serait la chanson et le second est l'artiste.

Cordialement


0 commentaires

0
votes

Après avoir lu le titre, je suppose que vous voulez lire un fichier ligne par ligne et diviser la ligne en fonction d'un délimiteur. Le code suivant peut être utile

def Start():
with open('Songs.csv') as f:
    line = f.readline()
    columns = line.split(':')
    #read columns list using index to get any values

Le code que vous avez fourni n'est pas très utile. Je suggère une description avec le code.


0 commentaires

0
votes

J'ai peut-être deviné la question ;-)? Ceci imprime toutes les chansons et artistes dans un ordre aléatoire (liste de chansons mélangées):

import re, csv, random

def Start():
    with open('new.csv') as Data:
        Read = csv.reader(Data,delimiter=':', quotechar='|')
        l = [line for line in Read]
        print(l)
        for _ in range(len(l)):                 # whatever length
            song, artist = random.choice(l)
            print(song, artist)
            l.remove([song, artist])

Start()


1 commentaires

Merci beaucoup Ronald.