【发布时间】:2015-12-10 11:36:35
【问题描述】:
如果我想将 python 脚本或其他程序的结果打印到文件中,我只需在控制台 python myscript.py>output.txt 上执行类似的操作,但现在 myscript 里面有一个输入,怎么能我把这个带到控制台?例如,我有脚本来检查给定的年份是否是闰年:
def isLeapYear(year):
return (year%4==0 and (year%400==0 or year%100!=0))
if __name__ == "__main__":
y=input("Test if your year is a leap year: ")
try:
out=str(y)+" is"
if not isLeapYear(int(y)):
out+=" not";
print(out+" a leap year")
except ValueError:
print("invaild input")
当我现在编写上面的命令时,我的输出文件中的结果是这样的(而我可以在控制台中输入年份):
测试你的年份是否是闰年:2000 年是闰年
但我只是想要
2000 年是闰年
在那里并拥有
测试你的年份是否是闰年:
显示在控制台上。有没有聪明的方法来做到这一点?我可以以某种方式强制将某些内容打印到控制台吗?有一个通用的方法吗?我的意思是我在使用 C 或 Java 程序时可能会遇到同样的问题。
【问题讨论】:
-
最好在脚本本身中实现写入文件。您可以将输出文件名作为参数从命令行传递。
-
我想了这么多。我是否可以至少以这样一种方式创建我的脚本,即如果有人试图以这种方式生成文件输出,则会显示错误消息,而脚本永远不会运行?
-
您不需要将输入转换为 str,因为每个输入都是字符串,除非您对其进行修改,因为输出不包括“测试您的年份是否为闰年:”根本不将答案添加到您的“out”变量中。在语句 out+="is" 中,您将“is”添加到您的输入中
-
@user3284214 你无法知道输出一旦输出会发生什么。如果有人决定将其重定向到一个文件,它将转到一个文件。他们还可能将其通过管道传输到另一个应用程序,或者将其打包在一个盒子中并发送到外太空。你不应该为此烦恼。
标签: python file console output