【发布时间】:2015-10-05 07:56:06
【问题描述】:
我正在学习 python,我制作了一个基本程序,用户获取照片的链接并输入它,然后程序下载该照片。为了确保用户不会输入网页链接而不是照片,我让程序使用字符串切片检查文件扩展名,但我似乎无法找到如何切片字符串向后
我知道这是一个愚蠢的问题,但经过一个小时的搜索,我仍然找不到答案。这是代码
import random
import urllib.request
import urllib.parse
def download_web_image(url, file_format):
try:
name = random.randrange(1, 1000)
full_name = str(name) + file_format
urllib.request.urlretrieve(url, full_name)
print("Image download successful!")
print("Image named " + full_name)
except:
print('Error')
def get_user_url():
url = input("Now enter the url of the photo you want to download:")
try:
if url[0:3:-1] is '.png':
download_web_image(url, ".png")
elif url[0:4:-1] is 'gepj.':
download_web_image(url, '.jpeg')
elif url[0:3:-1] is '.gpj':
download_web_image(url, '.jpg')
else:
print('the file format is uncompatible: ' + url[1:4:-1])
except:
print('The url is not valid!')
print('look for an image on a website, make sure it is a JPG or PNG file or it will not work!')
get_user_url()
感谢您的帮助。不,我不希望字符串向后显示。
【问题讨论】:
-
与其查看文件扩展名(可能会产生误导或不存在),不如获取页面(或至少查看标题,通过 HTTP HEAD)会更好。
Content-type是您应该关注的。 -
另见python字符串上的
endswith方法:"filename.png".endswith(".png") -
相关:stackoverflow.com/questions/509211/…(是的,我知道它是标记列表,但字符串是一样的)
-
如果你想检查扩展,
os.path.splitext可能就是你要找的。span>
标签: python string reverse slice file-extension