提问者:小点点

使用Python自动更改下载文件的名称


此脚本循环浏览下载csv文件的url列表:

#!/usr/bin/python

import subprocess

file = open('links20151111.txt','r')
for url in file:
        print ('[+] downloadin ' + url.strip())
        subprocess.call(['wget', '--content-disposition', url.strip()])

url不包含文件名。

需要做的事情是将文件名中的所有“-”替换为“\”。文件名可以是这样的,“traffic_Againments_2001-2014.csv”。


共2个答案

匿名用户

如果我正确理解了这个问题,您可以在每次下载新文件时循环浏览下载目录中的文件,并查找带有破折号的文件,然后在该文件上进行字符替换。这应该做到:

#!/usr/bin/python
import subprocess, os

def rename_file():
    for f in os.listdir(os.getcwd()): 
        if '-' in f and f.endswith('.csv'): 
            os.rename(f,f.replace('-','_'))

file = open('links20151111.txt','r')
for url in file:
        print ('[+] downloadin ' + url.strip())
        subprocess.call(['wget', '--content-disposition', url.strip()])
        rename_file()

根据文件名的结构,您可能需要收紧文件搜索的条件。您可以编译正则表达式以更严格地匹配文本格式。

匿名用户

使用-O选项:

wget google.com -O foo.html

更多信息在这里。

否则我建议使用请求模块:如何使用请求下载图像