python - 将字符串列表写入txt文件,但文件为空,为什么?

标签 python list for-loop python-3.x

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()

我的代码有什么问题,我尝试用所有 jpg 图片编写一个 txt 文件 来自当天的天文图片,但文件 APODImgs.txt 为空... mf 列表有时是空的也许这是我的问题......

APODLinks.txt 包含如下网址:

apod.nasa.gov/apod/ap140815.html
apod.nasa.gov/apod/ap140814.html
apod.nasa.gov/apod/ap140813.html

7000行网址

APODImgs.txt 必须如下所示:

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
...

请帮忙,抱歉我的英语...

最佳答案

很可能 not lilic 中始终为 true,因为您的正则表达式不匹配。

要弄清楚这一点,请打印 HTTP 响应正文:

urr = urllib.request.urlopen(a[i]).read()
print repr(urr)
mf = re.findall(patern, urr)
print repr(mf)
lic(mf)

关于python - 将字符串列表写入txt文件,但文件为空,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25330098/

相关文章:

python - SKlearn : KDTree how to return nearest neighbour based on threshold (Python)

python - 在 init 方法中将变量分配为 None 时抑制 PyCharm 警告

python - pandas df.fillna - 在外连接后用正确的值填充 NaN

JAVA从数组转为列表并使用shuffle方法

python - HTTP 错误 404 : Not Found - BeautifulSoup and Python

java - 将字节数组插入 List<Byte> 的最简洁方法?

iphone - 列出 iPhone 应用程序文档文件

linux - 读取传递给命令的 cat 文件无法正常工作

python - 使用 for 循环遍历列表,检查字符是否存在。如果存在,将角色放入同一个位置的新列表中

python - while 循环 vs for 循环求 3 和 5 的倍数之和小于 1000