python中范围的偏移量

2024-09-28 05:20:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个csv文件,有大约100万条记录

我想把这个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 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)`

Tags: 文件csvreadsql记录loadfileoffset
1条回答
网友
1楼 · 发布于 2024-09-28 05:20:49

我不明白你做了什么,但我想你想要这样的东西:

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)

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

对不起我的英语

相关问题 更多 >

    热门问题