[英]Python output to command line; Error not defined
我正在尝试编写一个脚本,该脚本接受一个参数并将输出写入命令窗口。 出于某种原因,我收到错误:
NameError: name 'month' not defined
这是整个脚本:
import sys
hex = str(sys.argv)
sys.stdout.write (month(hex) + " " + day(hex) + ", " + year(hex) + " " + hour(hex) + ":" + minute(hex) + ":" + second(hex))
def year (hex):
year = int(hex[0:2], 16)
year = year + 1970
return str(year)
def month (hex):
month = int(hex[2:4], 16)
if month == 0:
month = "January"
return month
elif month == 1:
month = "February"
return month
elif month == 2:
month = "March"
return month
elif month == 3:
month = "April"
return month
elif month == 4:
month = "May"
return month
elif month == 5:
month = "June"
return month
elif month == 6:
month = "July"
return month
elif month == 7:
month = "August"
return month
elif month == 8:
month = "September"
return month
elif month == 9:
month = "October"
return month
elif month == 10:
month = "November"
return month
else:
month = "December"
return month
def day (hex):
day = int(hex[4:6], 16)
return str(day)
def hour (hex):
hour = int(hex[6:8], 16)
if hour < 10:
return "0" + str(hour)
else:
return str(hour)
def minute (hex):
minute = int(hex[8:10], 16)
if minute < 10:
return "0" + str(minute)
else:
return str(minute)
def second (hex):
second = int(hex[10:12], 16)
if minute < 10:
return "0" + str(second)
else:
return str(second)
当我使用在线python解释器来运行它时,功能运行良好。 我只是不知道如何从命令行运行它并将输出发送回命令窗口。 谢谢
在函数定义之后放置sys.stdout.write
行。
请不要在函数内使用month
和函数中的变量。
在python中,文件从上到下逐行解析,因此该行的month
, year
, hour
, minute
和second
函数尚未定义:
sys.stdout.write (month(hex) + " " + day(hex) + ", " + year(hex) + " " + hour(hex) + ":" + minute(hex) + ":" + second(hex))
将这些函数定义移到此行之上。
使用与函数名称同名的局部变量不是一个好主意。
由于sys.argv
返回一个列表(第一个元素是文件名),因此您不能在其上应用hex
。 在列表的项目上应用hex
,即hex( int(sys.argv[1]) )
>>> lis = ['foo.py', '12']
>>> hex( int(lis[1]) ) #use `int()` as hex expects a number
'0xc'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.