그래서이 코드를 python 2.7.3에서 ./randline.py test.txt 명령으로 실행하면이 코드가 올바르게 작동합니다.python 2.7.3에서 완벽하게 작동하지만 python 3에서 오류가 발생했습니다.
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()
내가 파이썬 3에서이 코드를 실행하려고 할 때 나는 오류 메시지 ": 파일을 열 수 없습니다 '3'[errno를 2] 해당 파일이나 디렉토리/usr/bin/python을"가지고 파이썬 3 인터프리터에 대해이 코드에 문제가 있습니까?
들여 쓰기를 수정할 수 있습니까? –
'/ usr/bin/python3' 대신에'/ usr/bin/python 3'을 찾았습니다. –