Python 我想创建一个循环,将不同文本文件中的数据写入单个excel文件

Python 我想创建一个循环,将不同文本文件中的数据写入单个excel文件,python,xlsxwriter,Python,Xlsxwriter,我正在尝试将文件夹中某些文本文件中的数据打印到excel文件中。 我希望每个文件数据都位于每列中。我只能将所有文件中的数据写入一列。你能帮我怎么做吗 导入glob,xlsxwriter 工作簿=xlsxwriter.workbook('Example2.xlsx') 工作表=工作簿。添加工作表() 行=0 列=0 fileslist=[] 对于glob.glob(“C:/Users/sahithpixels/Documents/SDN/*”)中的文件: 追加(文件) a=文件.strip('\n

我正在尝试将文件夹中某些文本文件中的数据打印到excel文件中。 我希望每个文件数据都位于每列中。我只能将所有文件中的数据写入一列。你能帮我怎么做吗

导入glob,xlsxwriter
工作簿=xlsxwriter.workbook('Example2.xlsx')
工作表=工作簿。添加工作表()
行=0
列=0
fileslist=[]
对于glob.glob(“C:/Users/sahithpixels/Documents/SDN/*”)中的文件:
追加(文件)
a=文件.strip('\n')
#印刷品(a)
filedata=[]
对于文件列表中的行:
以open(行“r”)作为输入文件:
f=inputfile.read().rstrip('\n\n')
filedata.append(f)
对于filedata中的第1行:
x=line1.split('\n\n')
对于x中的第2行:
工作表。写入字符串(行、列、行2)
行+=1
打印(文件数据)
工作簿.关闭()

问题是您首先将所有文件中的数据读取到
filedata
数组中。在此之后,您无法再分辨哪一行来自哪个文件,因此无法增加
计数器。您必须嵌套这两个循环。类似于此:

filedata = []
for line in fileslist:
    row = 0
    with open(line, 'r') as inputfile:
        f = inputfile.read().rstrip('\n\n')
        filedata.append(f)
        x = f.split('\n\n')
        for line2 in x:
            worksheet.write_string(row, column, line2)
            row += 1
    column += 1
print(filedata)

问题是您首先将所有文件中的数据读取到
filedata
数组中。在此之后,您无法再分辨哪一行来自哪个文件,因此无法增加
计数器。您必须嵌套这两个循环。类似于此:

filedata = []
for line in fileslist:
    row = 0
    with open(line, 'r') as inputfile:
        f = inputfile.read().rstrip('\n\n')
        filedata.append(f)
        x = f.split('\n\n')
        for line2 in x:
            worksheet.write_string(row, column, line2)
            row += 1
    column += 1
print(filedata)

我认为下一个循环将从上一个循环留下的下一行和下一列开始。我尝试了你给我的提示,它实现了我上面所说的。如果第一个文件写在第1列,在第5行结束,第二个文件从第2列第6行开始,应该从第2列第0行开始,依此类推。是的,你是对的,对不起。当然,您必须为每个文件重置行。我已经更新了我的答案。谢谢,它成功了。我通过将row=0放在for循环上方进行测试。但再次感谢。我认为下一个循环将从上一个循环留下的下一行和下一列开始。我尝试了你给我的提示,它实现了我上面所说的。如果第一个文件写在第1列,在第5行结束,第二个文件从第2列第6行开始,应该从第2列第0行开始,依此类推。是的,你是对的,对不起。当然,您必须为每个文件重置行。我已经更新了我的答案。谢谢,它成功了。我通过将row=0放在for循环上方进行测试。但再次感谢你。