Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何编写在终端上显示为.txt文件的结果?_Python - Fatal编程技术网

在python中,如何编写在终端上显示为.txt文件的结果?

在python中,如何编写在终端上显示为.txt文件的结果?,python,Python,我已经学习python一周了。但我不确定如何将结果保存为文件 def process_rows(self, rows): for row in rows: self.rownum+=1 print(rownum) 我认为将会有超过40万个结果。 但Termial显示,从441810到450000,只有8000个结果 我想将结果保存在.txt文件中并读取。 我改变了我的代码如下 def process_rows(self, rows): f = o

我已经学习python一周了。但我不确定如何将结果保存为文件

def process_rows(self, rows):
    for row in rows:
        self.rownum+=1
        print(rownum)
我认为将会有超过40万个结果。 但Termial显示,从441810到450000,只有8000个结果

我想将结果保存在.txt文件中并读取。 我改变了我的代码如下

def process_rows(self, rows):
    f = open("output_file", 'a+')
    for now in rows:
        self.rownum +=1
        f.write(rownum + "\n")
    f.close()
但发生了异常错误

TypeError: unsupported operand type(s) for +: 'int' and 'str'
ERROR:tornado.application:Uncaught exception in /conn 
File "/usr/lib/python2.7/dist-packages/tornado/websocket.py", line 415, in _run_callback
  callback(*args, **kwargs)
File "server.py", line 98, in process_rows
  f.write(rownum + "\n")
NameError: global name 'rownum' is not defined

有两条路要走:

  • 将打印输出重定向到文件
  • 请注意,print接受一个整数
    rownum
    ,并显示它的
    str()

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for row in rows:
            self.rownum+=1
            print(rownum, file = f)
    
  • 使用正确的数据类型进行添加操作 您在第二个代码段中所做的是将整数
    rownum
    添加到字符串
    '\n'
    ,这是无效的操作。您需要先将整数转换为相应的字符串:

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for now in rows:
            self.rownum +=1
            f.write(str(rownum) + "\n")
        f.close()
    

    有两条路要走:

  • 将打印输出重定向到文件
  • 请注意,print接受一个整数
    rownum
    ,并显示它的
    str()

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for row in rows:
            self.rownum+=1
            print(rownum, file = f)
    
  • 使用正确的数据类型进行添加操作 您在第二个代码段中所做的是将整数
    rownum
    添加到字符串
    '\n'
    ,这是无效的操作。您需要先将整数转换为相应的字符串:

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for now in rows:
            self.rownum +=1
            f.write(str(rownum) + "\n")
        f.close()
    
    这应该起作用:

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for now in rows:
            self.rownum +=1
            f.write(str(self.rownum) + "\n")
        f.close()
    
    您在一行中有两个错误:1)省略“self”;2) 如消息所述,添加int+string

    如果按照建议阅读
    print
    write
    的文档,您会发现
    print
    会使用默认格式自动将对象转换为字符串,而
    write
    不会。写入文件时,通常需要指定确切的格式。

    这应该可以:

    def process_rows(self, rows):
        f = open("output_file", 'a+')
        for now in rows:
            self.rownum +=1
            f.write(str(self.rownum) + "\n")
        f.close()
    
    您在一行中有两个错误:1)省略“self”;2) 如消息所述,添加int+string


    如果按照建议阅读
    print
    write
    的文档,您会发现
    print
    会使用默认格式自动将对象转换为字符串,而
    write
    不会。写入文件时,通常需要指定确切的格式。

    可能重复的请查看文档,以下是您需要的一切:请在发布之前阅读错误消息。请告诉我有什么问题。可能重复的请查看文档,这里是你需要的一切:请在这里张贴之前阅读错误消息。请告诉我出了什么问题。