Python不会将文件保存到ubuntu11.10上Python文件所在的文件夹

2024-10-01 15:36:07 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我从一个url中提取jpg。我可以保存图像文件,只要它们被保存到python文件所在的同一个文件夹中。一旦我尝试更改文件夹(在这里被视为输出路径),图像文件不会被创建。我想它和我的outpath有关,但是当我在控制台中打印和观看它时,它似乎很好。在

顺便说一句,Ubuntu 11.10操作系统。我对linux和python都是新手,所以两者都可以。:)

如果我要打印从CSV文件中获取的序列,它看起来像:[['Champ1','Subname1','imgurl1'],['Champ2','subname2','imgurl2'],['Champ3','subname3','imgurl3']…]

(这是从一个网站上刮来的)

import csv
from urlparse import urlsplit
from urllib2 import urlopen, build_opener
from urllib import urlretrieve
import webbrowser
import os
import sys


reader = csv.reader(open('champdata.csv', "rb"), delimiter = ",", skipinitialspace=True)


champInfo = []


for champs in reader:
    champInfo.append(champs)


size = len(champInfo)

def GetImages(x, out_folder="/home/sean/Home/workspace/CP/images"):
    b=1
    size = len(champInfo)
    print size

    while b < size:
        temp_imgurls = x.pop(b)
        filename = os.path.basename(temp_imgurls[2])
        print filename
        outpath = os.path.join(out_folder, filename)
        print outpath
        u = urlopen(temp_imgurls[2])
        localFile = open(outpath, 'wb')
        localFile.write(u.read())
        localFile.close()


        b+=1

GetImages(champInfo)

我知道它很粗糙,但它确实有效,只有当我不试图改变保存路径时。在


Tags: 文件csvfromimportsizeos图像文件filename
3条回答

更新答案:

我认为问题的答案只是添加一个检查输出目录是否存在的检查,并在需要时创建它。即,添加:

if not os.path.exists(out_folder):
    os.makedirs(out_folder)

你现有的代码。


一般来说,您可以尝试类似的方法:

^{pr2}$

以上代码适用于champdata.csv形式为stuff,more_stuff,http://www.somesite.com.au/path/to/image.png 但如果我还不了解你输入数据的实际格式,我需要进行调整。

定义获取图像(x):

b=1
size = len(champInfo)
print size
while b < size:
    temp_imgurls = x.pop(b)
    filename = temp_imgurls[2]
    u = urlopen(temp_imgurls[2])
    localFile = open(filename, 'wb')
    localFile.write(u.read())
    localFile.close()

这段代码将把文件保存在脚本所在的同一目录中。

尝试在任何地方提供完整的图像路径

E:/../home/sean/home/workspace/CD/images

相关问题 更多 >

    热门问题