计划转移 Python 2 在 Python 3, 发电机随机线
我有一个写入的随机字符串生成程序程序 Python2, 但我需要将它转移到 Python3.
你给出了计划选项 -n [number] 以及任意输出的文件参数 [number] 来自文件的行数。
以下是程序的源代码:
当我用它的时候 python3:
我收到以下错误:
你能告诉我这个错误是什么意思,怎么解决它?
谢!
你给出了计划选项 -n [number] 以及任意输出的文件参数 [number] 来自文件的行数。
以下是程序的源代码:
#!/usr/bin/python
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] [FILE]...
Output randomly selected lines from each 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/"input at least one operand!"/
for index in range/len/args//:
input_file = args[index]
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//
当我用它的时候 python3:
python3 randline.py -n 1 file.txt
我收到以下错误:
File "randline.py", line 66
except IOError as /errno, strerror/:
^
SyntaxError: invalid syntax
你能告诉我这个错误是什么意思,怎么解决它?
谢!
没有找到相关结果
已邀请:
3 个回复
小姐请别说爱
赞同来自:
依赖于一些不清楚的事实:例外情况 Python 2 迭代,您可以迭代地对异常设置的参数进行整理,转到异常本身。
当然,这违反了规则 "Explicit is better than implicit" Python 并因此被删除 Python 3, 所以你不能再这样做了。 相反,做:
它更加理解并在所有版本中工作。 Python.
八刀丁二
赞同来自:
正确的形式是:
然后你可以检查
对于这样的属性 , 作为
等等。
我不确定你从原始线条得到的地方,它也不是允许的语法 Python 2.x.
龙天
赞同来自:
http://docs.python.org/library/2to3.html