任务:
1、打开和程序同一目录下的名为“配置.txt”的文件夹
“配置.txt”构成如下
第一行:一个绝对路径,如"D:\PPT模板"
第二行~第n行:每行一行文字,如“www.baidu.com”,“北京XX大学”这样的串,每行一个
2、把第一行的绝对路径下的所有文件名处理一下,删除和“ 第二行~第n行”指定文字匹配的内容
如,原来文件名"D:\[PPT模板\北京XX大学logo.png"
更改后文件名“D:\PPT模板\logo.png”,其中在“配置.txt”中指定的“北京XX大学”删掉。
提交:
python源码
exe文件,双击直接实现功能
代码:
f = open("D:\\Python\\Lib\\peizhi.txt", "w")
f.write("D:\\xiugai\nwww.baidu.com\n北京XX大学\nwww.hao123.com\n")
f.close()
import os
path = "D:\\xiugai"
f = open("D:\\Python\\Lib\\peizhi.txt","r")
files = os.listdir(path)
next(f)
for line in f:
#print(line)
for file in files:
old = path + os.sep + file
#print(file)
#print(line)
new = path + os.sep + file.replace(line,'')
os.rename(old,new)
f.close()
第一次写时 发现replace不了 后来才知道line遍历时 会把字符串后面的‘\n’带进去导致在配对时对应不上从而不能修改。
因此:加入lines = f.read().splitlines() 把字符串后的“\n” 去掉
而且应该是根据已有的配置.txt来修改,不用重新写
于是:
import os
path = "D:\\xiugai"
f = open("D:\\Python\\Lib\\peizhi.txt","r")
next(f)
lines = f.read().splitlines()
files = os.listdir(path)
for line in lines:
#print(line)
for file in files:
old = path + os.sep + file
print(file)
print(line)
new = path + os.sep + file.replace(line,'')
os.rename(old,new)
f.close()
但是文件名若有多个关键词需要修改,一次只能删一个
最终代码:
import os
f = open("配置.txt","r",encoding='UTF-8')
lines = f.read().splitlines()
path =str(lines[0])
#print(lines[0])
files = os.listdir(path)
for line in lines:
files = os.listdir(path)
for file in files:
old = path + os.sep + file
new = path + os.sep + file.replace(line,'')
os.rename(old,new)
f.close()
在两个for语句之间再加一句 files = os.listdir(path)
就是在每次循环后重新读取文件的名字,然后接着配对修改即可。
生成exe:
在pycharm里下载好Pyinstaller这个库,然后打开终端(alt+F12)
输入pip install pyinstaller 即可安装
然后再在终端输入 pyinstaller -F xxxx.py(xxxx.py为你的脚本名字)
刚开始我按网上的 pyinstaller -F -w xxxx.py 发现exe报错无法打开
后面百度把-w去掉即可。
最后把配置.txt exe文件和源码放一起即可。