标题:为什么我这个脚本不能对指定目录执行呢?
只看楼主
打球的渔夫
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-18
结帖率:0
已结贴  问题点数:20 回复次数:5 
为什么我这个脚本不能对指定目录执行呢?
# encoding: utf-8
import zipfile
import os
def rename():
    path ="E:\\python123\\PY1\\src\\gaihouzhui\\123"
    filelist = os.listdir(".")      
    for filename in filelist:
        portion = os.path.splitext(filename)
        if portion[1] == ".jpg":   
            newname = portion[0] + ".zip"
            os.rename(filename,newname)
rename();


这个只能对程序目录下的文件运行结果,对绝对目录没有用,这是啥情况?
小白一个,请各位大神帮帮忙解释一下。谢谢!
2017-04-18 17:04
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:10 
应该是设定的参数没有传递进去

    filelist = os.listdir(path)


改成这样子 试下
2017-04-18 22:29
打球的渔夫
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-18
得分:0 
回复 2楼 寒风中的细雨
之前就是这样子改的,也不行。。。忧桑。。
2017-04-19 09:37
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
得分:0 
回复 3楼 打球的渔夫
改了之后  将filelist 全部打印出来看看 是什么  不就清楚了

昨天 试过 是可以读取到 path指定目录下面的文件的
2017-04-19 21:16
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
得分:10 
回复 楼主 打球的渔夫
PATH没有用导致的。因为你没用全名,全名是路径+文件名,否则就是相对路径,当然找不到目标。更何况你最开始os.listdir里面根本没给正确的地址……
我个人……建议你先踏实看一下Python的官方文档……不是装笔……里面有特别详细的介绍,看懂了你就不会不清楚为啥listdir给了名字却没有办法直接用在rename里了……

代码仅供参考:

程序代码:
import os

#所有扩展名都压在里面
EXTENTIONS = [".jpg",".jpeg"]

#只获取扩展名
def get_ext_name(filename):
    return os.path.splitext(filename)[1]

#只获取全名
def get_full_name(path, filename):
    if(path.endswith("\\")):
       return path+os.path.splitext(filename)[0]
    else:
       return path+"\\"+filename

#改名
def filename_mod(path):
       filelst = os.listdir(path)
       for filename in filelst:
           if get_ext_name(filename) in EXTENTIONS:
               fullname = get_full_name(path,filename)
               os.rename(fullname,fullname+".zip")


另外,看来看去发现几个问题:
1、标识太单一,扩展麻烦
2、所有代码一股脑都写在了一起不好发现和单独处理问题
3、前后只是改了扩展名,没必要引用多余的模块

[此贴子已经被作者于2017-4-24 10:26编辑过]


除了基础……我什么都不会……
2017-04-24 10:22
打球的渔夫
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2017-4-18
得分:0 
回复 5楼 sunb3
好的,谢谢 谢谢!! 谨记师哥的教诲!
2017-04-29 11:28



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-476233-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.429580 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved