Python 正在将字符串列表写入txt文件,但该文件为空,为什么?
我的代码出了什么问题?我正在尝试编写一个包含所有jpg图片的txt文件 从当天的天文学图片中,但文件APODImgs.txt是空的。。。 mf列表有时是空的也许这是我的问题 APODLinks.txt包含如下URL:Python 正在将字符串列表写入txt文件,但该文件为空,为什么?,python,list,for-loop,python-3.x,Python,List,For Loop,Python 3.x,我的代码出了什么问题?我正在尝试编写一个包含所有jpg图片的txt文件 从当天的天文学图片中,但文件APODImgs.txt是空的。。。 mf列表有时是空的也许这是我的问题 APODLinks.txt包含如下URL: import re, urllib.request patern = re.compile(r'image/\w*\W*\w*\.\jpg', re.I|re.M) file = open('APODLinks.txt','r') rf = file.read() a = rf
import re, urllib.request
patern = re.compile(r'image/\w*\W*\w*\.\jpg', re.I|re.M)
file = open('APODLinks.txt','r')
rf = file.read()
a = rf.split('\n')
file.close()
def lic(li):
if not li:
pass
else:
print(li[0])
f.write('http://apod.nasa.gov/apod/%s\n' % li[0])
def main():
for i in range(len(a)):
ur = urllib.request.urlopen(a[i])
mf = re.findall(patern, str(ur.read()))
lic(mf)
f = open('APODImgs.txt','w')
main()
f.close()
apod.nasa.gov/apod/ap140815.html
apod.nasa.gov/apod/ap140814.html
apod.nasa.gov/apod/ap140813.html
7000行URL
APODImgs.txt必须如下所示:
import re, urllib.request
patern = re.compile(r'image/\w*\W*\w*\.\jpg', re.I|re.M)
file = open('APODLinks.txt','r')
rf = file.read()
a = rf.split('\n')
file.close()
def lic(li):
if not li:
pass
else:
print(li[0])
f.write('http://apod.nasa.gov/apod/%s\n' % li[0])
def main():
for i in range(len(a)):
ur = urllib.request.urlopen(a[i])
mf = re.findall(patern, str(ur.read()))
lic(mf)
f = open('APODImgs.txt','w')
main()
f.close()
apod.nasa.gov/apod/ap140815.html
apod.nasa.gov/apod/ap140814.html
apod.nasa.gov/apod/ap140813.html
请帮助我并为我的英语感到抱歉…很可能
not li
在lic
中总是正确的,因为您的regexp不匹配
要解决此问题,请打印HTTP响应正文:
apod.nasa.gov/apod/image/1408/Persei93_1abolfath.jpg
apod.nasa.gov/apod/image/1408/Supermoon_20140810.JPG
apod.nasa.gov/apod/image/1408/m57_nasagendler_3000.jpg
apod.nasa.gov/apod/image/1408/HebesChasma_esa_1024.jpg
...
我更改了我的代码,它就工作了强>
urr = urllib.request.urlopen(a[i]).read()
print repr(urr)
mf = re.findall(patern, urr)
print repr(mf)
lic(mf)
它不会影响您的模式,但是
'\jpg'
中的'j'
不需要转义。我复制了您的代码,并使用您的示例文件进行了尝试。当我在APODLinks.txt中的链接开头添加“http://”时,它似乎起到了作用。另外,您可以使用a=file.readlines()我的regexp很好。。。某些URL具有其他格式的视频或图像。因为我的名单是空的。。。当我运行脚本时,行print(li[0])可以打印出所有ULR,但APODImgs.txt是空的…在f.write(…)
之后添加一个f.flush()
调用,并在其上方添加一个print('WRITING:'+repr(li[0])
。那么,您的程序的确切控制台输出是什么,文件的大小是多少?您确定在程序运行时没有试图查看该文件吗?你确定没有在程序完成之前中止它吗?您确定程序没有因为未捕获的异常而中止吗?