【问题标题】:write file in list and save as .txt or .doc in python在列表中写入文件并在 python 中另存为 .txt 或 .doc
【发布时间】:2014-01-03 14:57:11
【问题描述】:

我在练习python时尝试玩数字,并尝试将其保存为文本或word文档,但是保存时,文件没有格式,我认为python默认将其保存为文本文件( .txt) 但我错了,它像未知格式文件一样保存

这是我的代码

    def Calculator(self):
        input1 = self.ui.lineEdit1.text()
        input2 = self.ui.lineEdit2.text()
        compare = ''
        if input1 == input2:
            compare = 'Yes its Same Number'
        else:
            compare = 'You input different number'
        self.ui.textBrowser.setPlainText(compare)

    def save(self, savein):
        with open(savein, 'w') as f:
            f.write( 'Number 1 :' + str(self.ui.lineEdit1.text()) )
            f.write( 'Number 2 :' + str(self.ui.lineEdit2.text()) )
            f.write( 'Conclusion :' + str(self.ui.textBrowser.toPlainText()) )
            f.close()
    def savefile(self):
        if self.savein:
              self.save( "%s" % self.savein )
        else:
              self.saveAs()

    def saveAs(self):
        tulis = QtGui.QFileDialog(self).getSaveFileName()
        if filename !="":
            _filename = "%s" % filename
            self.save( _filename )

当我尝试用记事本打开它时,它写在一行中,如下所示:

Number 1 :20000Input 2 :3000000Conclusion :You input different number

我必须添加什么才能将输出保存为列表,如下所示:

Number 1:20000
Number 2:30000
Conclusion : Different

谢谢

【问题讨论】:

  • 注意,"%s" % filename 是一种反模式,尤其是因为filename 已经是一个字符串。改用self.save( filename )

标签: python


【解决方案1】:

在行尾添加\n,例如更改:

f.write( 'Number 1 :' + str(self.ui.lineEdit1.text()) )

到:

f.write( 'Number 1 :' + str(self.ui.lineEdit1.text()) + '\n')

等等

【讨论】:

  • 哇,它的工作原理谢谢.. 但如果你介意我还有 1 个问题,我如何将文件保存为文本 (.txt) 或单词 (.doc),我在其他帖子中读到我可以添加 {.encode} 但是否需要我安装编解码器或添加?
  • @user3044923 如果您想以.txt 扩展名保存文件,它的完成方式与您所做的完全一样。保存到 .doc 扩展名是另一回事,因为它不仅仅是一种不同的编码,它是一种不同的格式,需要某种处理。查看以下内容:stackoverflow.com/a/188620/1057429
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
  • 1970-01-01
相关资源
最近更新 更多