为了将大量的pdf电子书拷贝到sd卡里面,写了一个py小脚本。
对于py,掌握十分有限,这个小脚本遇到两个问题:
(1)py无法识别带中文的文件路径
(2)shutil.copyfile总是报io error permission denied错误
解决办法如下:
(1)针对中文路径,做如下处理:srcPath = unicode("D:/360云盘/书籍/e_book/" , "utf8")
(2)当 shutil.copyfile(srcfile, destfile) 中destfile为一个文件目录的时候才会报错,当两个参数均表示文件的时候则不会报错,当然descfile文件是不存在的
下面贴出全部代码:
# -*- coding: UTF-8 -*-
#遍历pdf文件
#将文件写入目标文件夹
import os
import shutil
srcPath = unicode("D:/360云盘/书籍/e_book/" , "utf8")
destPath = unicode("G:/My Files/Books" , "utf8")
for dirpath, dirnames, filenames in os.walk(srcPath):
for filename in filenames:
if (filename[-3]+filename[-2]+filename[-1]=="pdf") :
#去掉_后面的文件名
newfilename=filename.split("_")[0]
if(newfilename[-3]+newfilename[-2]+newfilename[-1]!="pdf"):
newfilename=newfilename+".pdf";
#将文件写入新目标文件夹
srcfile=dirpath+"/"+filename
destfile=destPath+"/"+newfilename
shutil.copyfile(srcfile, destfile)
其中,字符串的截取没处理好,用了一个很二的毛招newfilename[-3]+newfilename[-2]+newfilename[-1]
,汗颜啊,以后有时间再改进。