python中范围的偏移

时间:2020-07-16 17:27:11

标签: python limit offset

我有一个带有100万条记录的csv文件

我想将该csv文件分为4个csv文件 并给出范围显示的偏移量 记录为 文件1有0-250k 文件2有251k- 500k 文件3有501k- 750k 文件4的751k-1000k

我如何在python中做到这一点?????

现在它显示为 文件1有0-250k 文件2有250k- 500k 文件3有500k- 750k 文件4的大小为750k-1000k,没有增加限制

让我们说我们正在读取下面包含100万条记录的文件

def load_f(file):
    return pd.read_csv(file)

print("Loading data..")
file = load_f('F58139.csv')
file= load_f('F58139.csv')
filef = load_f('F58139.csv')

for循环-

for row in cursor.fetchall():
        noOfRcrds = row[0]
        noOfPart=3



limit=math.floor(noOfRcrds /noOfPart)

for i in range(noOfPart):
    offset = i * limit
    sql = sqlTbl.format(tableName=tableName, limit=limit, offset=offset)
    print(sql)
    df = pd.read_sql(sql, conn)
    df.to_csv('/tmp/data/{tableName}-{partition}.csv'.format(tableName=tableName,partition=i),index=False,header = False)`

1 个答案:

答案 0 :(得分:1)

我不明白您的所作所为,但我认为您想要这样的事情:

def divide_csv(arq, parts):
    with open(arq) as file_in:
        linhas = file_in.readlines()
        n_linhas = len(linhas)
        len_arq = n_linhas // parts
        for i in range(parts):
            offset = i * len_arq
            with open(f'file{i}.csv', 'w') as out:
                for j in range(offset, offset + len_arq): # Just write in correct range
                    out.write(linhas[j])
      

divide_csv('1000_Sales_Records.csv', 4)

首先,我打开文件并将其行存储在列表中,然后将这些行写入新文件中。

对不起,我的英语。