有两种脚本可以写入同一文件的方法吗?

时间:2019-06-05 14:45:17

标签: python excel while-loop

我对python的经验有限,但是决心要学习。我正在尝试创建一个脚本,该脚本将一些数据输入写入excel直到停止。当一个人使用它时非常简单,但问题是两个人将同时使用它。

我正在考虑使其变得简单,并且可以同时运行2个完全相同的脚本,但是问题在于要保存文件时。如果我保存了两个具有相同名称的文件,则其中一个将覆盖另一个文件,并且数据将丢失。有没有一种方法可以让脚本创建具有不同名称的文件而无需手动更改代码? (这最终可以扩展到运行它的最多20台计算机)

循环看起来像:

import xlwt
from xlwt import Workbook

wb = Workbook()
s1 = wb.add_sheet('Sheet 1')

data = []
while user != '0':
    user = input('Scan ID Badge: ')
    data.append(user)
    order = input('Scan order: ')
    data.append(order)
    item = input('Scan item barcode: ')
    data.append(item)

    for i in range(len(data)):
        s1.write(row,i,data[i])

    wb.save('OrderData.xls')
    data = []
    row += 1

2 个答案:

答案 0 :(得分:1)

如果仍然要使用表格形式的数据存储,则可以切换到真实数据库,并在间隔上创建db文件的类似excel的摘要。

答案 1 :(得分:0)

如果您知道所有使用此脚本的用户都将使用具有不同网络名称的计算机,则可以在XLS名称中包括计算机名称:

import platform

filename = 'AssociateEfficiencyTemp-' + platform.node() + '.xls'
# ...
wb.save(filename)

(您也可以使用getpass.getuser()(尝试并获取运行脚本的用户的用户名。)

然后,您可以编写另一个脚本来读取所有单独的文件(glob.glob('AssociateEfficiencyTemp-*.xls')等)并将其组合。

(我建议中间文件使用{.3ls之外的其他格式,such as plain text files of JSON lines。)