Как использовать запись (строку) и список в качестве аргумента для записи в выходной файл? - PullRequest
0 голосов
/ 07 февраля 2020

Я недавно ( большой новичок, если честно) ) до Python и пытаюсь создать генератор случайных имен пользователей.

Цель моего проекта:

  1. импортировать образец набора данных из файла CSV, содержащего имена и фамилии людей, разделенных табуляцией в алфавитном порядке.
  2. сгенерировать выходной CSV-файл, который будет добавлять имя из случайной строки к фамилии из другой строки.

Пользователь должен иметь возможность выбрать, сколько имени пользователя он хочет сгенерировать ( например, «Я хочу создать 100K + пользователей случайным образом и записать их в файл 'username.csv')

Выходной файл, который я ищу, должен выглядеть примерно так:

Nikolas Abishek 
Benjamin Franklin
...

Я придумал этот код после некоторого исследования:

import csv
import os 
import random 
random.seed(314)

name = open ('../data/original/names.csv')
username = open ('../data/original/usernames.csv' , "w")

numberofuser = int(input('How many users do you want to generate ? '))
readnames = csv.reader(name, delimiter = '\t')
counter = 0
while counter < numberofuser:
    for index,row in enumerate(readnames):
        if index == 0:
                chosen_row = row
                username.write(row)
        else:
            r = random.randint(0, index)
            username.write(row)
            if r == 0 :
                    chosen_row = row
                    username.write(row)
    counter = counter + 1
print ("" + str(numberofuser) + " users has been generated")

Глядя на эту статью о взятии проб из пласта , у меня была идея реализовать его. Моё сообщение об ошибке: следующим образом:

    ➜  lib git:(master) ✗ python genname.py
How many users do you want to generate ? 5
Traceback (most recent call last):
  File "genname.py", line 13, in <module>
    username.write(row)
TypeError: write() argument must be str, not list

Итак, я понимаю, что проблема в том, что запись (строка) не может принимать список в качестве аргумента, но мне не удается найти способ разделения списка для записи. каждый элемент это новая строка в моем выходном файле. Есть ли у вас какие-либо идеи о том, как это сделать?

Это мое первое сообщение stackoverflow, надеюсь, мой вопрос ясен.

Спасибо за чтение.

J.

РЕДАКТИРОВАТЬ: позже я добавил случайное семя для тестирования.

...