py csv文件按行分解输出和 py文件整合问题

问题一:如何以等量的间隔输出多个文件 例如 第一个文件输出1-21 第二个文件输出21-42 以此类推
img
问题二:如何将下列两程序整合到一起

import os
import re
import datetime
import numpy as np
import pandas as pd

if __name__ == '__main__':
    filenames_in = r'C:\Users\wxy\Desktop\111'  # 输入文件的文件地址
    filenames_out = r'C:\Users\wxy\Desktop\333'  # 新文件的地址
    pathDir = os.listdir(filenames_in)
    for allDir in pathDir:
        child = re.findall(r"(.+?).csv", allDir)  # 正则的方式读取文件名,去扩展名
        if len(child) >= 0:  # 去掉没用的系统文件
            newfile = ''
            needdate = child  #### 这个就是所要的文件名
        domain1 = os.path.abspath(filenames_in)  # 待处理文件位置
        info = os.path.join(domain1, allDir)  # 拼接出待处理文件名字

        # ------------数据处理过程---------------
        print(info, "开始处理")
        df = pd.DataFrame(pd.read_csv(info))
        a = df.corr()
        a = round(a, 4)  # print(round(a, 4))
        b = a.applymap(lambda x: (2 * (1 - x)) ** 0.5)
        b = round(b, 4)
        # print(a)
        # print(b)
        df0 = []
        for x in a.index:
            df0.append(a.loc[x, :])
        c = pd.concat(df0, keys=a.index).to_frame().reset_index()
        c.columns = ['i', 'j', 'Corrcoef(c)']
        df1 = []
        for x in b.index:
            df1.append(b.loc[x, :])
        d = pd.concat(df1, keys=b.index).to_frame().reset_index()
        d.columns = ['i', 'j', 'Dist=sqrt(2(1-c))']
        d = d.drop(['i', 'j'], axis=1)
        df = pd.concat([c, d], axis=1, join='inner', ignore_index=False,
                       keys=None, levels=None, names=['i', 'j', 'Corrcoef(c)', 'Dist=sqrt(2(1-c))'],
                       verify_integrity=False)
        domain2 = os.path.abspath(filenames_out)  # 处理完文件保存地址
        outfo = os.path.join(domain2, allDir)  # 拼接出新文件名字
        df.to_csv(outfo, encoding='utf-8',index=False)
        print(info, "处理完")

endtime = datetime.datetime.now()




open(r'C:\Users\wxy\Desktop\re\555.csv','r',encoding='utf-8') as f, open(r'C:\Users\wxy\Desktop\re\666.csv','w',encoding='utf-8') as f1:
    a=f.readlines()
    f1.write('#'*10+'\n')
    f1.write('# i  j Corrcoef(c) Dist=sqrt(2(1-c))\n')
    f1.write('#'*10+'\n')
    for line in a:
        f1.write(' '.join(line.split(',')) + '\n')

代码二是处理代码一输出出来的文件的 如能帮助一定采纳谢谢

第一段代码直接和第二段合并,第一段去掉 if __name__语句,将open(r'C:\Users\wxy\Desktop\re\555.csv','r',encoding='utf-8')读取的文件名,对应于图一中输出的文件outfo即可。
补充:如果读取多个csv,合并写入一个有格式要求的csv中,合并多个df,一次写入文件,可用如下代码:

import os
import re
import datetime
import numpy as np
import pandas as pd

filenames_in = r'C:\Users\1\Desktop\111'  # 输入文件的文件地址
#filenames_out = r'C:\Users\2\Desktop\444'  # 新文件的地址
pathDir = os.listdir(filenames_in)
dfs=pd.DataFrame()
for i,allDir in enumerate(pathDir):
    child = re.findall(r"(.+?).csv", allDir)  # 正则的方式读取文件名,去扩展名
    if len(child) >= 0:  # 去掉没用的系统文件
        newfile = ''
        needdate = child  #### 这个就是所要的文件名
    domain1 = os.path.abspath(filenames_in)  # 待处理文件位置
    info = os.path.join(domain1, allDir)  # 拼接出待处理文件名字
    # ------------数据处理过程---------------
    print(info, "开始处理")
    df = pd.DataFrame(pd.read_csv(info))
    dfs=dfs.append(df,ignore_index=True)
print(dfs)
with open(r'C:\Users\1\Desktop\666\222.csv','w', encoding='utf-8') as f1:
    f1.write('#' * 20 + '\n')
    f1.write('# i j Corrcoef(c) Dist=sqrt(2(1-c))\n')
    f1.write('#' * 20 + '\n')    
    dfs.to_csv(f1, encoding='utf-8',index=False)

写入不同文件:

import os
import re
import datetime
import numpy as np
import pandas as pd

filenames_in = r'C:\Users\1\Desktop\111'  # 输入文件的文件地址
#filenames_out = r'C:\Users\2\Desktop\444'  # 新文件的地址
pathDir = os.listdir(filenames_in)
for i,allDir in enumerate(pathDir):
    child = re.findall(r"(.+?).csv", allDir)  # 正则的方式读取文件名,去扩展名
    if len(child) >= 0:  # 去掉没用的系统文件
        newfile = ''
        needdate = child  #### 这个就是所要的文件名
    domain1 = os.path.abspath(filenames_in)  # 待处理文件位置
    info = os.path.join(domain1, allDir)  # 拼接出待处理文件名字
    # ------------数据处理过程---------------
    print(info, "开始处理")
    df = pd.DataFrame(pd.read_csv(info))
    print(df)
    
    with open(f'C:/Users/1/Desktop/666/{i}.csv','w', encoding='utf-8') as f1:
        f1.write('#' * 24 + '\n')
        f1.writelines('# i  j  Corrcoef(c)  Dist=sqrt(2(1-c))\n')
        f1.write('#' * 24 + '\n')    
        df.to_csv(f1, encoding='utf-8',index=False,header=None,line_terminator='\n')

把代码二封装成一个函数放在代码一文件里面,在代码一处理完成后,把文件名称当做参数传入,或者需要的地方调用该函数即可。