python - 为什么我的代码在复制文件扩展名时不起作用
问题描述
代码如下
公共文件夹中的文件是data.json, data.csv,1.json,2.csv
- 只需从 .json 扩展名复制到 json 文件夹
- 只需从 .csv 扩展名复制到 csv 文件夹
import os
mypath = r"C:\Users\user\Desktop\common"
mypathjson = r"C:\Users\user\Desktop\common\json"
mypathcsv = r"C:\Users\user\Desktop\common\csv"
f = []
for (dirpath, dirnames, filenames) in os.walk(mypath):
f.extend(filenames)
break
extension = [i.split(".")[-1] for i in f]
if extension == 'json':
copyfile(mypath,mypathjson)
if extension == 'csv':
copyfile(mypath,mypathcsv)
解决方案
这应该可以解决问题,具体取决于您的 copyfile 函数(我假设来自 shutil 的函数),您需要实际指定目标中的文件名。此外,扩展名只是一个扩展名列表,没有附加文件名,这使得它有点无用。
import os
from shutil import copyfile
mypath = r"C:\Users\user\Desktop\common"
mypathjson = r"C:\Users\user\Desktop\common\json"
mypathcsv = r"C:\Users\user\Desktop\common\csv"
f = []
for (_, _, fn) in os.walk(mypath):
f.extend(fn)
break
for each in f:
if each.endswith(".json"):
copyfile(each, os.path.join(mypathjson, each))
elif each.endswith(".csv"):
copyfile(each, os.path.join(mypathcsv, each))
推荐阅读
- html - 如何在另一个“a”标签内使用“a”标签?
- c++ - 如何使用函数对象作为回调来调用对象中的成员函数(处理程序)?
- php - 无法打开流:VariableStream::stream_open
- database - Oracle 数据库配置助手在克隆数据库时挂起 (44%)
- typescript - 如何只接受一个空对象?
- logstash - Logstash 配置修改异常堆栈跟踪
- maven - LDAP 库的 Maven 依赖项无法在 OSGi 中解决
- macos - MacOS 10.12.6 在 Availability.h 中安装 Perl 模块 WWW:Curl::Easy 错误
- python-3.x - 如何从本地存储的多个html文件中解析文本并写入excel文件
- c++ - C++ 标准在发布诊断消息时有哪些保证?