在python 2.7.3中完美地工作但在python 3中出错

use*_*385 -4 python python-3.x

所以,当我使用命令./randline.py test.txt在python 2.7.3中运行此代码时,此代码工作正常.但是,当我尝试在python 3中运行此代码时,我收到错误消息"/ usr/bin/python:无法打开文件'3':[Errno 2]没有这样的文件或目录"

import random, sys
 from optparse import OptionParser

class randline:
   def __init__(self, filename):
       f = open(filename, 'r')
       self.lines = f.readlines()
       f.close()

   def chooseline(self):
       return random.choice(self.lines)

def main():
   version_msg = "%prog 2.0"
   usage_msg = """%prog [OPTION]... FILE

Output randomly selected lines from FILE."""

   parser = OptionParser(version=version_msg,
                      usage=usage_msg)
   parser.add_option("-n", "--numlines",
                  action="store", dest="numlines", default=1,
                  help="output NUMLINES lines (default 1)")
   options, args = parser.parse_args(sys.argv[1:])

   try:
       numlines = int(options.numlines)
   except:
       parser.error("invalid NUMLINES: {0}".
                    format(options.numlines))
   if numlines < 0:
       parser.error("negative count: {0}".
                 format(numlines))
   if len(args) != 1:
       parser.error("wrong number of operands")
   input_file = args[0]

   try:
       generator = randline(input_file)
       for index in range(numlines):
           sys.stdout.write(generator.chooseline())
   except IOError as (errno, strerror):
       parser.error("I/O error({0}): {1}".
                    format(errno, strerror))

if __name__ == "__main__":
     main()
Run Code Online (Sandbox Code Playgroud)

这个python 3解释器的代码有什么问题吗?

jko*_*era 5

看起来你在跑python 3(有空间).你应该使用python3.