Arrays Go-按顺序从URL下载文件
我正试图学习GoLang的一些新东西,但遇到了一个小问题,可能是因为我不太擅长使用数组 下面是我想做的:Arrays Go-按顺序从URL下载文件,arrays,function,go,Arrays,Function,Go,我正试图学习GoLang的一些新东西,但遇到了一个小问题,可能是因为我不太擅长使用数组 下面是我想做的: 使可变 下载该变量 为该变量添加++1 下载并添加1 循环10次 我对第1点和第2点都很在行,但对第3点和第4点却没有什么意见 所有的文件都是.pdf格式的,这就是我为什么在那里制作strconv的原因 我可能应该在main中进行某种循环,并使用其中的一些数组参数调用DownloadFile函数 package main import ( "fmt" "io" "n
package main
import (
"fmt"
"io"
"net/http"
"os"
"strconv"
)
func main() {
url_id := strconv.Itoa(23430815+2)
filename := url_id+".pdf"
fileUrl := "https://someurLid="+url_id
if err := DownloadFile(filename, fileUrl); err != nil {
panic(err)
}
fmt.Println(fileUrl)
}
func DownloadFile(filepath string, url string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
return err
}
Cerise Limón给出了答案,结果就是这样
arr := make([]uint8, 3) //How many times it loops
url_id := 23430815 //Starting from id, filename
for range arr {
filename := strconv.Itoa(url_id)+".pdf"
fileUrl := "https://someurl?id="+strconv.Itoa(url_id)
if err := DownloadFile(filename, fileUrl); err != nil {
panic(err)
}
fmt.Println(fileUrl)
url_id++
}
谢谢你指出我应该从哪里开始!:) Cerise Limón给出了答案,结果就是这样
arr := make([]uint8, 3) //How many times it loops
url_id := 23430815 //Starting from id, filename
for range arr {
filename := strconv.Itoa(url_id)+".pdf"
fileUrl := "https://someurl?id="+strconv.Itoa(url_id)
if err := DownloadFile(filename, fileUrl); err != nil {
panic(err)
}
fmt.Println(fileUrl)
url_id++
}
谢谢你指出我应该从哪里开始!:) 试试这个
package main
import (
"fmt"
"io"
"net/http"
"os"
"strconv"
)
func main() {
url_id_num := 23430815+2
for i := 0; i < 10; i++ {
url_id := strconv.Itoa(url_id_num+i)
filename := url_id+".pdf"
fileUrl := "https://someurLid="+url_id
if err := DownloadFile(filename, fileUrl); err != nil {
panic(err)
}
fmt.Println(fileUrl)
}
}
func DownloadFile(filepath string, url string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
return err
}
主程序包
进口(
“fmt”
“io”
“net/http”
“操作系统”
“strconv”
)
func main(){
url\u id\u num:=23430815+2
对于i:=0;i<10;i++{
url\u id:=strconv.Itoa(url\u id\u num+i)
文件名:=url_id+“.pdf”
文件URL:=”https://someurLid=“+url\u id
如果错误:=下载文件(文件名,文件URL);错误!=无{
恐慌(错误)
}
fmt.Println(文件URL)
}
}
func下载文件(文件路径字符串、url字符串)错误{
resp,err:=http.Get(url)
如果错误!=零{
返回错误
}
延迟响应主体关闭()
out,err:=os.Create(文件路径)
如果错误!=零{
返回错误
}
推迟结束
_,err=io.Copy(out,resp.Body)
返回错误
}
试试这个
package main
import (
"fmt"
"io"
"net/http"
"os"
"strconv"
)
func main() {
url_id_num := 23430815+2
for i := 0; i < 10; i++ {
url_id := strconv.Itoa(url_id_num+i)
filename := url_id+".pdf"
fileUrl := "https://someurLid="+url_id
if err := DownloadFile(filename, fileUrl); err != nil {
panic(err)
}
fmt.Println(fileUrl)
}
}
func DownloadFile(filepath string, url string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
_, err = io.Copy(out, resp.Body)
return err
}
主程序包
进口(
“fmt”
“io”
“net/http”
“操作系统”
“strconv”
)
func main(){
url\u id\u num:=23430815+2
对于i:=0;i<10;i++{
url\u id:=strconv.Itoa(url\u id\u num+i)
文件名:=url_id+“.pdf”
文件URL:=”https://someurLid=“+url\u id
如果错误:=下载文件(文件名,文件URL);错误!=无{
恐慌(错误)
}
fmt.Println(文件URL)
}
}
func下载文件(文件路径字符串、url字符串)错误{
resp,err:=http.Get(url)
如果错误!=零{
返回错误
}
延迟响应主体关闭()
out,err:=os.Create(文件路径)
如果错误!=零{
返回错误
}
推迟结束
_,err=io.Copy(out,resp.Body)
返回错误
}
阅读围棋之旅中的相关内容。该示例演示如何使用递增计数器循环。有效的围棋文档还包括。@CeriseLimón-你可以将此作为答案发布,这就是给我解决方案的原因:)。阅读围棋教程。该示例演示如何使用递增计数器循环。有效的Go文件还包括。@CeriseLimón-你可以将此作为答案发布,这就是给我解决方案的原因:)。