在Excel工作表中逐行打印文本文件

2024-10-01 07:29:51 发布

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

我试图逐行读取文本文件,然后逐行将其打印到excel工作表中

这是我到目前为止所拥有的

for x in ABC:
    print(f"{x}:")
    sheet1[cellLocLastRow('A')] = f"{x}:"
    try:
        with open(f"./{x}/Log.txt") as f:
            textRead= (f.read())
            print(textRead)
            sheet1[cellLocLastRow('A')] = textRead
    except FileNotFoundError:
        print("File does not exist")
        sheet1[cellLocLastRow('A')] = "File does not exist"

它将文本文件打印到excel工作表中,但所有内容都在一行中,如下所示 1

但是我希望我的文本文件像这样打印出来 2

如果您想知道我为什么使用[cellLocLastRow('A')],我使用它而不是[A17],因为我正在将未知长度的文档打印到excel工作表中,因此它会计算行数

def cellLocLastRow(colChar):
    global lastRow
    curRow = lastRow
    lastRow += 1
    return cellLoc(colChar, curRow)

文本文件格式如下:

TestName: TestName

TestName: Info::Info::Info::Info::f###::##.#ns
Total Errors: #

TestName: Info::Info::Info::Info::f###::##.#ns
Total Errors: #

TestName: Info::Info::Info::Info::f###::##.#ns
Total Errors: #

Tags: infonotexcelfiletotalprintns文本文件
2条回答

使用pylightxl非常简单

pip install pylightxl

lines = []
with open(“textfile.txt”) as f:
    line = f.readline()
    if not line:
        break
    lines.append(line)


import pylightxl as xl

db = xl.Database()

db.add_ws("Sheet1", {})

for i, line in enumerate(lines, start=1):
    db.ws("Sheet1").update_index(i, 1,line)

xl.writexl(db, “output.xlsx”)

你试过f.readlines()方法吗

with open(text, 'r') as f: 
content1 = f.readlines()

此脚本将返回一个包含所有文件行的列表,然后您可以轻松地执行任何操作

相关问题 更多 >