NameError: name 'filename' is not defined
NameError: name 'filename' is not defined
我正在尝试关注 reddit u/busterroni 的 video 如何制作 reddit 机器人,但是虽然他的程序运行良好,但我的程序一直挂在 "filename" 上下面一行说...
usernames = get_usernames(filename)
...在 main() 下。谁能告诉我问题出在哪里?顺便说一句,我在视频中 12:11 以防有帮助。
import praw
import sys
def main():
reddit = authenticate()
usernames = get_usernames(filename) #ERROR
print(usernames)
def authenticate():
print('Authenticating...')
reddit = praw.Reddit(
'notifier',
user_agent="BlueWizard3's joketest v0.1")
print('Authenticated as {}'.format(reddit.user.me()))
return reddit
def get_usernames(filename):
try:
with open(filename, 'r') as f:
usernames = f.read()
usernames = usernames.split('\n')
usernames = filter(None, usernames)
except IOError:
print('Error: file ', filename, " not found in the current directory.")
quit()
return usernames
main()
def send_message(r, username, subject, body):
try:
r.redditor(username).message(subject, body)
except praw.exceptions.APIException as e:
if 'USER_DOESNT_EXIST' in e.args[0]:
print(e.args[0])
if len(sys.argv) != 4:
print('usage: notifier.py file "subject" "body"')
filename = sys.argv[1] # ADDED
subject = sys.argv[2] # ADDED
body = sys.argv[3] # ADDED
for username in usernames:
send_message(r, username, subject, body)
第一次在 Stack Overflow 上发帖,请耐心等待。
您的代码缺少为变量赋值的部分 'filename'
在参考视频的 code 中
这是在结束代码中的第 47 行完成的,第 37 行在 11m 左右:
47: filename = sys.argv[1]
48: subject = sys.argv[2]
49: body = sys.argv[3]
50:
51: r = bot_login()
52: usernames = get_usernames(filename)
编辑:现在我们已经解决了这个问题,我们需要解决下一个问题,即在通过 sys.argv 传入值之后,您应该在 main 中得到一些东西。这意味着下面的代码不应该在程序前面的 'main' 方法中,而是在第 50 行
之后
reddit = authenticate()
usernames = get_usernames(filename) #ERROR
print(usernames)
我正在尝试关注 reddit u/busterroni 的 video 如何制作 reddit 机器人,但是虽然他的程序运行良好,但我的程序一直挂在 "filename" 上下面一行说...
usernames = get_usernames(filename)
...在 main() 下。谁能告诉我问题出在哪里?顺便说一句,我在视频中 12:11 以防有帮助。
import praw
import sys
def main():
reddit = authenticate()
usernames = get_usernames(filename) #ERROR
print(usernames)
def authenticate():
print('Authenticating...')
reddit = praw.Reddit(
'notifier',
user_agent="BlueWizard3's joketest v0.1")
print('Authenticated as {}'.format(reddit.user.me()))
return reddit
def get_usernames(filename):
try:
with open(filename, 'r') as f:
usernames = f.read()
usernames = usernames.split('\n')
usernames = filter(None, usernames)
except IOError:
print('Error: file ', filename, " not found in the current directory.")
quit()
return usernames
main()
def send_message(r, username, subject, body):
try:
r.redditor(username).message(subject, body)
except praw.exceptions.APIException as e:
if 'USER_DOESNT_EXIST' in e.args[0]:
print(e.args[0])
if len(sys.argv) != 4:
print('usage: notifier.py file "subject" "body"')
filename = sys.argv[1] # ADDED
subject = sys.argv[2] # ADDED
body = sys.argv[3] # ADDED
for username in usernames:
send_message(r, username, subject, body)
第一次在 Stack Overflow 上发帖,请耐心等待。
您的代码缺少为变量赋值的部分 'filename' 在参考视频的 code 中
这是在结束代码中的第 47 行完成的,第 37 行在 11m 左右:
47: filename = sys.argv[1]
48: subject = sys.argv[2]
49: body = sys.argv[3]
50:
51: r = bot_login()
52: usernames = get_usernames(filename)
编辑:现在我们已经解决了这个问题,我们需要解决下一个问题,即在通过 sys.argv 传入值之后,您应该在 main 中得到一些东西。这意味着下面的代码不应该在程序前面的 'main' 方法中,而是在第 50 行
之后reddit = authenticate()
usernames = get_usernames(filename) #ERROR
print(usernames)