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)
3 Réponses :
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
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.
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()
Merci beaucoup Ronald.
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.