【问题标题】:Append A Random Number in every line in CSV file python在 CSV 文件 python 的每一行中附加一个随机数
【发布时间】:2017-11-23 11:44:57
【问题描述】:

我试图在行 [2] 的 csv 文件的每一行中附加一个随机数我从原始文件中获取信息,然后将其写入一个新的 csv 文件 + 我在第二行附加随机数 但是当我运行脚本时,我在每一行都得到相同的随机数( 我有包含 exp 的读取文件:

car,golf

当我将此数据写入新的 csv 文件并附加第二行时,我每行都得到相同的数字

car,golf,1777
car,bmw,1777
car,m3,1777

我该如何解决这个问题,以便我可以在每一行中都有随机数

data = []  
    with open("read.csv", "r") as the_file:
        sid_row = 5000
        for i in range(sid_row):
            line = str(random.randint(1,5000))
            sid = line
        reader = csv.reader(the_file, delimiter=",")
        for row in reader:
            try:
                new_row = [row[0], row[1],sid]
                data.append(new_row)
            except IndexError as error:
                print(error)
                pass
    with open("Random.csv", "w+") as Ran_file:
        writer = csv.writer(Ran_file, delimiter=",")
        for new_row in data:
            writer.writerow(new_row)

【问题讨论】:

  • 发生的事情是您将随机数字符串分配给 sid 5000 次,但您从不使用生成的任何值,除了最后一个值,因为您只是开始实际将其添加到生成最后一个随机数后的数据。每次追加新行时,您都应该生成随机数。

标签: python csv random append


【解决方案1】:

对于您正在处理的每一行,您每次都需要一个新的随机数,例如:

data = []  
    with open("read.csv", "r") as the_file:
        reader = csv.reader(the_file, delimiter=",")
        for row in reader:
            try:
                line = str(random.randint(1,5000))
                sid = line
                new_row = [row[0], row[1],sid]
                data.append(new_row)
            except IndexError as error:
                print(error)
                pass
    with open("Random.csv", "w+") as Ran_file:
        writer = csv.writer(Ran_file, delimiter=",")
        for new_row in data:
            writer.writerow(new_row)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-23
    • 2014-10-04
    • 2018-09-04
    • 1970-01-01
    • 2016-06-25
    • 2022-01-13
    • 2019-07-11
    • 1970-01-01
    相关资源
    最近更新 更多