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

时间:2015-12-08 05:21:54

标签: python replace

此脚本循环显示下载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()])

网址不包含文件名。

需要做的是替换所有" - "用" _"在文件名中。 文件名可以是这样的," traffic_injuries_2001-2014.csv"。

2 个答案:

答案 0 :(得分:0)

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

#!/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()

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

答案 1 :(得分:0)

使用-O选项:

wget google.com -O foo.html

更多信息here

否则我建议使用requests模块:How to download image using requests