如何向后切片字符串 python
How to slice strings backwards python
我正在学习 python,我制作了一个基本程序,用户可以在其中拍摄 link 照片并输入,然后程序下载该照片。为了确保用户不会输入 link 这是网页而不是照片,我让程序使用字符串切片检查文件扩展名是什么,但我似乎找不到了解如何向后切片字符串
我知道这是一个愚蠢的问题,但经过一个小时的搜索,我仍然找不到答案。这是代码
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()
感谢您的帮助。不,我不希望字符串向后显示。
你想要的是负数索引,从list/string:
的末尾开始搜索
extension = url[-3:]
将检索 url
.
中的最后 3 个字符
url[-1]
是url
的最后一个字符,url[-2]
是倒数第二个,依此类推。所以 url[-3:]
获取从倒数第三个字符到字符串末尾的所有内容。
我建议你使用内置的方法endswith
省去了可变大小扩展的麻烦(png
,jpeg
,jpg
...etc),这样:
>>>url = 'https://www.python.org/static/community_logos/python-logo-master-v3-TM.png'
>>>url.endswith('.png')
True
以下类型的方法可能更容易遵循:
def get_user_url():
url = input("Now enter the url of the photo you want to download: ")
try:
extension = os.path.splitext(url.lower())[1]
if extension in [".png", ".jpeg", ".jpg"]:
download_web_image(url, extension)
else:
print('the file format is uncompatible: {:}'.format(extension))
except:
print('The url is not valid!')
我建议您也将输入转换为小写,这样您就可以同时捕获“.JPG”。
我正在学习 python,我制作了一个基本程序,用户可以在其中拍摄 link 照片并输入,然后程序下载该照片。为了确保用户不会输入 link 这是网页而不是照片,我让程序使用字符串切片检查文件扩展名是什么,但我似乎找不到了解如何向后切片字符串
我知道这是一个愚蠢的问题,但经过一个小时的搜索,我仍然找不到答案。这是代码
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()
感谢您的帮助。不,我不希望字符串向后显示。
你想要的是负数索引,从list/string:
的末尾开始搜索extension = url[-3:]
将检索 url
.
url[-1]
是url
的最后一个字符,url[-2]
是倒数第二个,依此类推。所以 url[-3:]
获取从倒数第三个字符到字符串末尾的所有内容。
我建议你使用内置的方法endswith
省去了可变大小扩展的麻烦(png
,jpeg
,jpg
...etc),这样:
>>>url = 'https://www.python.org/static/community_logos/python-logo-master-v3-TM.png'
>>>url.endswith('.png')
True
以下类型的方法可能更容易遵循:
def get_user_url():
url = input("Now enter the url of the photo you want to download: ")
try:
extension = os.path.splitext(url.lower())[1]
if extension in [".png", ".jpeg", ".jpg"]:
download_web_image(url, extension)
else:
print('the file format is uncompatible: {:}'.format(extension))
except:
print('The url is not valid!')
我建议您也将输入转换为小写,这样您就可以同时捕获“.JPG”。