使用 csv 我想 select 一个随机的数据行并提取数据所以 S =歌曲和 A = 艺术家,重复

Using csv I want to select an random row with data and extract the data so S =songs and A = artist,repeat

下面是我的尝试,能否帮忙改进一下,先谢谢了。

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)

请问。纠正我,如果我没有以正确的方式理解这个问题,但我认为用 pandas.

阅读这个 csv 文件会更容易

喜欢:

import pandas as pd

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

然后数据框中的第一个列是歌曲,第二个是艺术家。

此致

阅读标题后,我想您想逐行阅读文件并根据分隔符拆分行。以下代码可能会有所帮助

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

您提供的代码没有太大帮助。我建议用代码进行描述。

也许我猜对了问题;-)?这将以随机顺序打印所有歌曲和艺术家(随机播放的歌曲列表):

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