从列表中下载文件,如果没有下载

我可以在C#做到这一点,并且代码相当长。

将是冷静​​,如果有人能告诉我如何做到这一点通过Python实现。

伪代码是:

url: www.example.com/somefolder/filename1.pdf 1. load file into an array (file contains a url on each line) 2. if file eg filename1.pdf doesn't exist, download file

该脚本可以在以下布局:

/python-downloader/ /python-downloader/dl.py /python-downloader/urls.txt /python-downloader/downloaded/filename1.pdf

--------------解决方案-------------

这应该做的伎俩,虽然我假设urls.txt文件只包含的URL。 不是url:前缀。

import os
import urllib

DOWNLOADS_DIR = '/python-downloader/downloaded'

# For every line in the file
for url in open('urls.txt'):
# Split on the rightmost / and take everything on the right side of that
name = url.rsplit('/', 1)[-1]

# Combine the name and the downloads directory to get the local filename
filename = os.path.join(DOWNLOADS_DIR, name)

# Download the file if it does not exist
if not os.path.isfile(filename):
urllib.urlretrieve(url, filename)

这是在Python更少的代码,你可以使用这样的事情:

import urllib2
improt os

url="http://.../"
# Translate url into a filename
filename = url.split('/')[-1]

if not os.path.exists(filename)
outfile = open(filename, "w")
outfile.write(urllib2.urlopen(url).read())
outfile.close()

这里是WoLpH的脚本为Python 3.3略加修改。

#!/usr/bin/python3.3
import os.path
import urllib.request

links = open('links.txt', 'r')
for link in links:
link = link.strip()
name = link.rsplit('/', 1)[-1]
filename = os.path.join('downloads', name)

if not os.path.isfile(filename):
print('Downloading: ' + filename)
try:
urllib.request.urlretrieve(link, filename)
except Exception as inst:
print(inst)
print(' Encountered unknown error. Continuing.')

分类:蟒蛇 时间:2012-01-01 人气:0
本文关键词: 蟒蛇
分享到:

相关文章

  • 蟒蛇RegOpenKeyEx()HKEY_LOCAL_MACHINE没有定义的错误 2012-01-01

    我一直在努力但是使用WIN32API模块manupulate从蟒蛇的注册表项,当我运行此三行代码 import win32api import win32con reghandle = win32api.RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Google\\",0, win32con.KEY_READ) 它给我回下面的错误 回溯(最近通话最后一个):文件"C:\ EclipseWorkspaces \ csse120 \ MMS

  • 是否有可能创建/编辑从蟒蛇的​​Excel宏? 2012-01-02

    我目前工作的要求我写一份(无休止)系列宏重现我们的分析师之一,设计数据透视表的项目. 的细节改变,但是代码是大致相同的,从实施例到实施例. 我想programmaticly生成基于一些选项的VBA代码,然后将宏添加到指定的工作表. 是否有可能创建一个Excel宏使用win32com或其他蟒蛇? 是否有可能从另外创建一个Excel宏Excel宏? 任何其他的想法? 项目背景,我有一个Python脚本,执行以下操作: 拉谷歌分析数据 做各种分析 结果写入创先争优 触发预先写好的宏来把数据放入一个格式

  • 提高::蟒蛇:Python列表为std ::矢量 2012-01-02

    最后,我可以使用[]操作符来使用std ::向量的蟒蛇. 诀窍是简单的提供升压C ++包装它处理内部向量的东西的容器: #include <boost/python.hpp> #include <vector> class world { std::vector<double> myvec; void add(double n) { this->myvec.push_back(n); } std::vector<double> show() { ret

  • 自动完成对namedtuples(蟒蛇)为Pydev的是,Eclipse? 2012-01-02

    如上所述,我很想有一些自动填充在蟒蛇namedtuples,反正是有吗? 我使用Pydev的. --------------解决方案------------- 的PyDev目前不分析namedtuples给你一个更好的反省吧. 请输入作为跟踪的PyDev功能要求(见:http://pydev.org/about.html的链接).

  • 什么是蟒蛇迭代类的方法next()和__next __()的,以及有什么区别? 2012-01-03

    我失去了蟒蛇的迭代器一点点. 我偶尔使用它们,但我不记得创建一个自己. 我从什么地方读,我不记得在哪里,这样的代码: class Foo(object): def __init__(self): self.something = "initial_value" def __iter__(self): return self def next(self): # I don't quite remember what was here :S return self.something 我猜

  • virtualenv中的蟒蛇无法找到PyQt4中 2012-01-03

    运行OSX(10.8.2)这里,取代他们用自制的蟒蛇. 都好: $ which python /usr/local/bin/python 安装点子,用的virtualenv冲泡蟒蛇. PyQt的安装与冲泡. 如果我 $ python >>> import PyQt4 , 没问题. 不过,如果我 (env)$ python >>> import PyQt4 Traceback (most recent call last): File "<stdin>

  • 一个列表蟒蛇的排列 2012-01-06

    所以我在这里张贴了这个问题. 蟒蛇名单的排列 而解决方案的工作..但我应该更加小心. 请看看上面的链接. 如果我没有一个明确的列表为A,B,C,D,但我有一个列表的列表..像 lists.append(a) lists.append(b) 等等. 而在最后,我只有"名单" 这个 for item in itertools.product(lists): print(item) 在这种情况下不工作? --------------解决方案------------- 使用从列表拆包一切* :

  • 问题MacPorts的捡错蟒蛇 2012-01-06

    我以前在安装了Python /opt/local/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 . 然后狮子更新后,我再次安装它/System/Library/Frameworks/Python.framework/Versions/2.6/bin/python2.6 . 但是,当我使用的MacPorts安装任何Python包,安装失败,出现以下消息: CPATH='/opt/local/include' MACOS

  • 如何登录蟒蛇的文档使用特定的填充技术M2Crypto? 2012-01-07

    我需要进行数字签名使用存储在一个.pem文件私有密钥的蟒蛇一些文字. 好像M2Crypto是首选的方式做,这些天,让我用什么. 我觉得我得到的大部分,但我感到困惑如何配置填充. 具体而言,我需要验证签名在iPhone应用程序,使用一个被称为填充方案kSecPaddingPKCS1SHA1和描述是这样的: 数据签名是一个SHA1哈希值. 标准的ASN.1填充将被完成,以及作为底层的RSA操作PKCS1填充. 不是一个加密专家,我只有一个模糊的知道这意味着什么. 我试着看一些RFC文档,但发现他们坚

  • 从源代码编译错误与蟒蛇共享库加载错误 2012-01-07

    当我尝试运行Python,我得到的错误: python2.6的:错误而载入共享库:libpython2.6.so.1.0:无法打开共享对象文件:没有这样的文件或目录 我以前曾编译蟒蛇没有问题,运行它的罚款. 我没有启用--with线程或--enable-共享. 现在,我启用了这两个编译选项我试图运行它的时候得到这个错误. 该文件libpython是在$ HOME / lib和Python,在$ HOME / bin中. --------------解决方案------------- sudo l

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.142 (s). 10 q(s)