python读取一个文件的每一行判断是否为素数,并把结果写到另一个文件中

时间:2022-09-20 16:05:19

刚刚学习python的菜鸟,这道题包括:文件的读写,python的参数调用,异常的使用,函数的使用

创建一个文本文件inti_prime.txt

执行命令:python Prime.py init_prime.txt result_prime.txt

会生成一个result_prime.txt文件

 #-*- coding:UTF-8 -*-
#读取一个文件的每一行,每一行为一个数字
#判断数字是不是素数
#并打印结果到另外一个文件
#输入文件名和输出文件名用参数的形式
import sys
import math
#输入文件
str1=sys.argv[1]
#输出文件
str2=sys.argv[2]
#打开文件
try:
file_object=open(str1,"r+")
except IOError:
print "找不到这个文件".decode('utf8').encode('gbk')
else:
file_result=open(str2,"w+")
#判断是否为素数
def IsPrime(number):
if number<2:
return False
else:
for i in range(2,int(math.ceil(math.sqrt(number))+1)):
if number==2:
return True
else:
if number%i==0:
return False
else:
continue
return True
#读取文件
for line in file_object:
line = line.strip()
if IsPrime(int(line)):
file_result.write(line+" is a Prime"+"\n")
else:
continue
file_object.close()
file_result.close()