在标题中,我收到此错误,
FileNotFoundError:[WinError 2]系统找不到指定的文件:
我是编码的新手,我编码为,在一个名为udacity的网站上完成,跟着他们写了这段代码,
import os
def rename_files():
files = os.listdir(r"C:\Users\WIN8\Desktop\oop\prank")
#print(files)
saved_path = os.getcwd()
print("current working directory is" + saved_path)
os.chdir(r"C:\Users\WIN8\Desktop\oop\prank")
for file_temp in files:
os.rename(
file_temp,
file_temp.translate(str.maketrans('', '', '0123456789')))
os.chdir(saved_path)
rename_files()
现在我得到的错误是
Traceback (most recent call last):
File "C:/Users/WIN8/Desktop/Tumin/First_Program/secret message.py", line 13, in <module>
rename_files()
File "C:/Users/WIN8/Desktop/Tumin/First_Program/secret message.py", line 11, in rename_files
file_temp.translate(str.maketrans('', '', '0123456789')))
FileNotFoundError: [WinError 2] The system cannot find the file specified: '16los angeles.jpg' -> 'los angeles.jpg'
然后我在输入file_temp.translate(None, "0123456789")
然后它说的是像error2,一个参数需要两个声明或者其他东西。然后我搜索了问题,并在一个线程中找到了这段代码
(
file_temp,
file_temp.translate(str.maketrans('', '', '0123456789')))
但它也没有用。
感谢您的帮助。
答案 0 :(得分:1)
试试这个:
import os
def rename_files():
fileslst = os.listdir(r"/Users/sachin/MACBOOK/prank")
print(fileslst)
saved_path = os.getcwd()
for filename in fileslst:
os.rename(filename, filename.strip("0123456789"))
os.chdir(saved_path)
rename_files()
<强> PLS。注意:强>
1.更换“恶作剧”文件夹的路径(包含PC上的文件夹位置)2.将恶作剧作为你当前的工作目录(cwd)来做个好主意 或者将图像放入你的cwd(这可能是你错误的原因)
以上代码正常运行。
首先打印文件夹中文件的原始名称。
然后,一旦整个代码运行,它将重命名同一文件夹中的文件,而控制台中没有任何输出。 您可以访问该文件夹,看到没有任何文件名有任何数字。
p.s。,如果您不确定当前设置为WD的内容 使用以下代码:
import os
print('Current working directory path:',os.getcwd())
答案 1 :(得分:0)
问题是循环中os.chdir缩进,它必须在循环之外
import os
def rename_files():
files = os.listdir(r"C:\Users\WIN8\Desktop\oop\prank")
#print(files)
saved_path = os.getcwd()
print("current working directory is" + saved_path)
os.chdir(r"C:\Users\WIN8\Desktop\oop\prank")
for file_temp in files:
os.rename(
file_temp,
file_temp.translate(str.maketrans('', '', '0123456789')))
os.chdir(saved_path)
rename_files()