按准备的行号拆分文件

2024-05-15 23:52:54 发布

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

我有一个文件,我需要分裂成更小的文件,具体行索引号码。你知道吗

我准备了索引-行标题中的行是:

listOfHeadersIndex = []

with open('Poland.csv', 'r') as csvfile:
    for i, line in enumerate(csvfile):
        if '[Header]' in line:
            print(i)
            listOfHeadersIndex.append(i)

以及:

listOFHeadersIndex is for example = 0,33,46,74.

现在我要把它分开。第一个文件应该包含0-32行,第二个33-45行,等等。我只找到了如何按常量行拆分的建议。如何以一种简单的方式在python中完成它?你知道吗


Tags: 文件csvcsvfilein标题forifas
3条回答
listOfHeadersIndex = []
lines = []

with open('Poland.csv', 'r') as csvfile:
    for i, line in enumerate(csvfile):
        lines.append(line)
        if '[Header]' in line:
            print(i)
            listOfHeadersIndex.append(i)

for i,a in enumerate(listOfHeadersIndex):
    first_index = a
    last_index = listOfHeadersIndex[i+1]-1
    str_ = ''
    for j,line in enumerate(lines):
       if j >= first_index and j <= last_index:
           if str_:
              str_+= '\n'.join(line)
           else:
              str_+= line
    f = open(f"file{i}.txt", "w")
    f.write(str)
    f.close()

这就是你要的。你知道吗

with open('Poland.csv', 'r') as csvfile:
    raw_data = csvfile.readlines()

file1=raw_data[0:33]
file2=raw_data[33:45]

您可以直接拆分文件。你知道吗

例如:

newFile = False
c = 1
with open('Poland.csv', 'r') as csvfile:       #Open SRC file
    for line in csvfile:              #Iterate Each line
        if '[Header]' in line:        #Check for header
            if newFile:               #Check if file is open
                newFile.close()       #Close file.
            newFile = open("{}.txt".format(c), "w")   #Create new file for write. 
            newFile.write(line)                       #Write Header. 
            c += 1
        else:
            newFile.write(line)                       #Write Content. 

相关问题 更多 >