Python 为什么这段代码没有控制台输出?
下面是我正在使用的代码,尽管控制台输出中没有错误,但仍然没有返回任何内容。为什么代码没有输出?有什么我需要更改或修复的吗。我想我导入的扫描仪是正确的,但可能有问题。谢谢大家!Python 为什么这段代码没有控制台输出?,python,Python,下面是我正在使用的代码,尽管控制台输出中没有错误,但仍然没有返回任何内容。为什么代码没有输出?有什么我需要更改或修复的吗。我想我导入的扫描仪是正确的,但可能有问题。谢谢大家! import sys from scanner import Scanner from functools import cmp_to_key class Tweet: def __init__(self, tweeter, tweet, time): self.tweeter = tweeter
import sys
from scanner import Scanner
from functools import cmp_to_key
class Tweet:
def __init__(self, tweeter, tweet, time):
self.tweeter = tweeter[1:]
self.tweet = tweet
self.time = time
def __str__(self):
return self.tweeter+" "+self.time
def display(self):
return self.tweeter+" " +self.tweet
def create_record(s):
tweets = []
tweeter = s.readtoken()
tweet1count = 0
while tweeter != "":
tweet = s.readstring()
t1 = Tweet(tweeter, tweet, s.readline())
tweet1count += 1
tweeter = s.readtoken()
tweets.append(t1)
return tweets
def read_records(file):
s = Scanner(file)
return create_record(s)
def is_more_recent(t1, t2):
year, month, day, time = t1.time.split()
month = ("0" + month)[-2:]
day = ("0" + day)[-2:]
timestamp1 = year + month + day + time
year, month, day, time = t2.time.split()
month = ("0" + day)[-2:]
day = ("0" + day)[-2:]
timestamp2 = year + month + day + time
return timestamp1 > timestamp2
def merge_and_sort_tweets(tweets1, tweets2):
tweets = tweets1 + tweets2
cmp_items_py3 = cmp_to_key(is_more_recent)
tweets.sort(key = cmp_items_py3)
return tweets
def write_records(file, tweets):
file = open(file, "w+")
for t in tweets:
file.write(str(t))
def main():
print("Reading Files")
tweets1 = read_records(sys.argv[1])
tweets2 = read_records(sys.argv[2])
tweet1count = len(tweets1)
tweet2count = len(tweets2)
if tweet1count > tweet2count:
print("tweet1.txt contained the most tweets with" , tweet1count)
elif tweet1count < tweet2count:
print("tweet2.txt contained the most tweets with" , tweet2count)
else:
print("tweet1.txt contains ", tweet1count, "tweets. ")
print("tweet2.txt contains ", tweet2count, "tweets. ")
print("Merging files...")
tweets = merge_and_sort_tweets(tweets1, tweets2)
print("Writing file...")
write_records(sys.argv[3], tweets)
print("File writtem. Displying", min(5, len(tweets)),"earliest tweeters and tweets.")
for i in range(min(5, len(tweets))):
print(tweets[i].display())
if __name__ == "__main__":
main()
导入系统
从扫描仪导入扫描仪
从functools导入cmp\u到\u键
类推文:
def uuu init uuu(self、tweeter、tweet、time):
self.tweeter=tweeter[1:]
self.tweet=tweet
self.time=时间
定义(自我):
返回self.tweeter+“”+self.time
def显示(自):
返回self.tweeter+“”+self.tweet
def创建_记录:
tweets=[]
tweeter=s.readtoken()
tweet1count=0
而推特!="":
tweet=s.readstring()
t1=Tweet(tweeter,Tweet,s.readline())
tweet1count+=1
tweeter=s.readtoken()
tweets.append(t1)
返回推文
def read_记录(文件):
s=扫描仪(文件)
返回创建_记录
def是较新的(t1、t2):
年、月、日、时间=t1.time.split()
月=(“0”+月)[-2:]
天=(“0”+天)[-2:]
时间戳1=年+月+日+时间
年、月、日、时间=t2.time.split()
月=(“0”+天)[-2:]
天=(“0”+天)[-2:]
时间戳2=年+月+日+时间
返回timestamp1>timestamp2
def merge_和sort_tweets(tweets1、tweets2):
tweets=tweets1+tweets2
cmp_items_py3=cmp_到_键(是最近的吗)
排序(key=cmp\u items\u py3)
返回推文
def写入记录(文件、推文):
文件=打开(文件“w+”)
对于tweets中的t:
文件写入(str(t))
def main():
打印(“读取文件”)
tweets1=读取记录(sys.argv[1])
tweets2=读取记录(sys.argv[2])
tweet1count=len(tweets1)
tweet2count=len(tweets2)
如果Tweet1计数>Tweet2计数:
打印(“tweet1.txt包含最多的tweets,带有“、tweet1count”)
elif Tweet1计数if
语句不应位于main()
函数内。因此,您从未调用该函数。该函数的正确位置应放在何处?确切位置,只是不缩进。如果您了解它在做什么,应该清楚它属于何处。