file02.txt文件是否存在?是否和"结课作业01.py"在同一个目录?
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import os
import shutil
#对象文件的类型指定
file_type_list = ['pdf','txt','xls','xlsx','pptx','doc']
src_folder = r'C:\Users\carry\Desktop\test001'
#取得文件夹下面的所有指定类型的文件全名(路径+文件名)
# os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。
# for dirpath,dirnames,filenames in os.walk(folder):
# print(dirnames)
def get_file_list(folder):
filelist = [] #存储要copy的文件全名
for dirpath,dirnames,filenames in os.walk(folder):
for file in filenames:
file_type = file.split('.')[-1]
if(file_type in file_type_list):
file_fullname = os.path.join(dirpath, file) #文件全名
filelist.append(file_fullname)
return filelist
#将文件list里面的文件拷贝到指定目录下
def copy_file(src_file_list, dst_folder):
print('===========copy start===========')
for file in src_file_list:
shutil.copy(file, dst_folder)
print('===========copy end!===========')
# filelist = get_file_list(src_folder)
if(__name__=="__main__"):
#copy源所在目录
src_folder = r'C:\Users\carry\Desktop\test001' #路径最后不要加\
#copy到的指定目录
dst_folder = r'C:\Users\carry\Desktop\target' #路径最后不要加\
#取得文件夹下所有指定类型的文件全名
filelist = get_file_list(src_folder)
copy_file(filelist, dst_folder)
参考:https://blog.csdn.net/bigear_yu/article/details/105387727
对于Python无法识别文件的问题,需要具体分析是什么原因导致的。
1.文件路径不正确 如果程序无法找到文件,可能是文件路径不正确,需要检查文件路径是否正确。可以使用绝对路径或者相对路径来指定文件路径。使用绝对路径时,需要注意不同操作系统的路径分隔符不同,Windows中使用反斜杠"\",而Unix/Linux/MacOS中使用正斜杠"/"。
2.文件名或文件后缀不正确 如果文件名或文件后缀不正确,Python也无法正确识别文件。需要检查文件名和后缀名是否正确。
3.文件权限问题 如果文件没有读写权限,Python无法读取或写入文件。需要检查文件权限是否正确。
4.文件编码问题 如果文件编码与程序默认编码不符合,Python无法正确读取文件内容。需要使用正确的编码方式打开文件,或者在程序中进行编码转换。
解决方案示例: 以读取TXT文件为例,正确打开文件的方式为:
with open('file.txt', 'r', encoding='utf-8') as f:
content = f.read()
其中,'file.txt'为文件名,'r'表示读取模式,'utf-8'表示文件编码。
如果文件路径不正确,可以使用绝对路径或相对路径,例如:
with open('/path/to/file.txt', 'r', encoding='utf-8') as f:
content = f.read()
其中,'/path/to/file.txt'为文件的绝对路径。
如果文件权限不正确,可以使用chmod命令修改文件权限:
chmod 777 /path/to/file.txt
其中,777表示最高权限。
如果文件编码不正确,可以使用chardet库检测文件编码,并使用正确的编码方式读取文件:
import chardet
with open('/path/to/file.txt', 'rb') as f:
content = f.read()
encoding = chardet.detect(content)['encoding']
with open('/path/to/file.txt', 'r', encoding=encoding) as f:
content = f.read()
其中,'rb'表示二进制读取模式,chardet.detect()函数可以检测文件编码。