【发布时间】:2018-06-18 07:09:10
【问题描述】:
解析 .ts 文件并从该文件中获取字符串。我想将该字符串写入 excel 列。谁能帮帮我?
from xml.dom import minidom
import sys, xlsxwriter
import pandas as pd
import numpy as np
reload(sys)
sys.setdefaultencoding('utf-8')
doc = minidom.parse("english.ts")
def main():
writer = pd.ExcelWriter('new.xlsx', engine='xlsxwriter')
messages = doc.getElementsByTagName("message")
for message in messages:
source = message.getElementsByTagName("source")[0]
ori_string = source.firstChild.data
print ori_string
df = pd.DataFrame({'TString': [ori_string]})
writer = pd.ExcelWriter('new.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
if __name__ == '__main__':
main()
我没有收到错误,“ori_string”正在打印,但在 excel 表中没有写入任何内容。
我只想将字符串写入 excel 列。如何迭代行以及如何在迭代中给出行号和列号?
【问题讨论】:
-
您正在通过
for循环的每次迭代覆盖 xlsx 文件。要么在循环中构建 Pandas 数据框并将 xlsx 文件写入循环外,要么直接省略 Pandas 并通过在循环外创建工作簿和工作表并在循环内写入数据来直接使用 XlsxWriter。 -
感谢您的回复。我尝试使用 xlsxWriter,但我也收到了类似 AttributeError 的错误:'dict' 对象没有属性'write'。你能告诉我如何将该字符串传递给dataFrame吗?(外部循环还是内部循环?因为在每次迭代中都会有一个字符串出现,所以我想将该字符串写入每个单元格。)
标签: python excel pandas xlsxwriter