我正在创建一个个人电视节目和电影数据库,我使用Python来获取电视节目和电影的信息。我有一个文件来获取文件夹中的电影信息,这很好。
我还有一个Python文件,可以获取电视节目的信息(这是一个文件夹,例如Game of Thrones
),它还可以从文件夹中获取所有剧集文件并获取这些文件的信息(它& #39;格式如下:例如Game of Thrones;3;9
)
所有这些信息都存储在MySQL可以阅读的2个文本文件中:tvshows.txt
和episodes.txt
。
Python可以在程序的第一部分轻松获取电视节目的信息。
该计划的第二部分是将每集都放在电视节目文件夹中,并将信息存储在一个文件中(episodes.txt
):
def seTv(show):
pat = '/home/ryan/python/tv/'
pat = pat + show
epList = os.listdir(pat)
fileP = "/home/ryan/python/tvtext/episodes.txt"
f = open(fileP, "w")
print epList
hdrs = ['Title', 'Plot', 'imdbRating', 'Season', 'Episode', 'seriesID']
def searchTvSe(ep):
ep = str(ep)
print ep
seq = ep.split(";")
print seq
tit = seq[0]
seq[0] = seq[0].replace(" ", "+")
url = "http://www.omdbapi.com/?t=%s&Season=%s&Episode=%s&plot=full&r=json" % (seq[0], seq[1], seq[2])
respo = u.urlopen(url)
respo = json.loads(str(respo.read()))
if not os.path.exists("/var/www/html/images/"+tit):
os.makedirs("/var/www/html/images/"+tit)
imgNa = "/var/www/html/images/" + tit + "/" + respo["Title"] + ".jpg";
for each in hdrs:
#print respo[each] # ==== This checks to see if it is working, it is =====
f.write(respo[each] + "\t")
urllib.urlretrieve(respo["Poster"], imgNa)
for co, tt in enumerate(epList):
f.write("\N \t" + str(co) + "\t")
searchTvSe(tt)
f.write("\n")
f.close()
fullTv()
第二部分仅运行一次,我在tv
文件夹(Game of Thrones
,Breaking Bad
,The Walking Dead
内有3个文件夹,这些文件中有一个来自系列(Game of Thrones;3;4
,Breaking Bad;1;1
,The Walking Dead;3;4
)。
在添加' seriesID'之前,这工作正常。并更改了文件(在我为每个文件夹创建一个文本文件之前,因为我有一个每个电视节目的表格所需的文件)。
在episodes.txt
中,“权力的游戏”的信息是唯一出现的信息。我删除了“权力的游戏”文件夹,看起来最后一个要搜索的是唯一添加的文件夹。它似乎在覆盖它?
感谢。
答案 0 :(得分:2)
更改此行:
f = open(fileP, "w")
对此:
f = open(fileP, "a")
答案 1 :(得分:1)
您需要使用'a'
而不是'w'
打开文件:
with open('file.txt', 'a') as myfile:
myfile.write("Hello world!")
您可以在https://docs.python.org/2/library/functions.html#open的文档中找到更多详细信息。