获取 ValueError:在尝试将匹配的文件名从 csv 复制到另一个目录时,没有足够的值来解压(预期为 2,得到 1)

     2023-03-12     112

关键词:

【中文标题】获取 ValueError:在尝试将匹配的文件名从 csv 复制到另一个目录时,没有足够的值来解压(预期为 2,得到 1)【英文标题】:Getting ValueError: not enough values to unpack (expected 2, got 1) while trying to copy matching filenames from csv to another directory 【发布时间】:2019-08-30 00:53:57 【问题描述】:

您好,我正在尝试将 csv 中提到的文件从一个目录复制到另一个目录,但出现此错误。到目前为止的代码:

import os
import shutil
import csv
import sys

csv_file = "C:\\Users\\Lenovo\\.spyder-py3\\bha.csv"
existing_path_prefix = 'C:\\Users\\Lenovo\\.spyder-py3\\5KFILES\\'
new_path_prefix =  'C:\\Users\\Lenovo\\.spyder-py3\\err\\'

with open(csv_file, 'r') as f:
    reader = csv.reader(f)
    for (i, row) in enumerate(reader):
        if i == 0:
            print(i)
            pass    # Skip header row
        else:
            filename, filepath = row
            new_filename = os.path.join(new_path_prefix, filename)
            old_filename = os.path.join(filepath, filename)
            shutil.copy(old_filename, new_filename)

打印出的行如下所示:

['05-18-18 Letter from BA - DMFLTR _20984_ IR.txt']
['05-18-18 Letter from CA NDA 20758s74 ACK Letter.txt']
['05-21-18 Letter from CBE 30-IR Gr.txt']
['05-24-18 Letter from FA 020872.txt']
['05-Mar-2018 - CBER Acknowledgement - 2198519.txt']
['05-Sept-2018 - CBER Approval - CCR 2229614 - Switch from AD.txt']
['05.10.2018 Cea Approval, var 15G.txt']

【问题讨论】:

问题是变量“row”不包含你认为它包含的内容。打印出来试试? (并告诉我们它是什么) 它包含每个文件名的单独列表 @BilzzM 你能和我们分享一下它的样子吗? 请检查更新后的代码 row 是一个列表,你用错了。它必须通过使用一些索引来访问。 【参考方案1】:

根据您的 CSV,您的行基本上是 ['somestring'] 并且要解压缩到一个元组,您需要一个包含至少两个元素的列表/元组。

基本上每一行应该是这样的:filename, filepath = ['some filename', 'some filepath']

你可以使用正则表达式:

import re

pattern = re.compile("([a-zA-Z 0-9 \-_.,]+) (\w+\.\w+)")
match = re.search(pattern, '05-18-18 Letter from BA - DMFLTR _20984_ IR.txt')

print(match.group(1))
print(match.group(2))

产生

05-18-18 Letter from BA - DMFLTR _20984_
IR.txt

所以基本上你需要做的就是将行传递给re.search(pattern, row),然后将文件名和文件路径作为:

filename = match.group(1)
filepath = match.group(2)

【讨论】:

@BlizzM 好吧,您的 CSV 格式一开始就不正确。因为您想将05-18-18 Letter from BA - DMFLTR _20984_ IR.txt 存储到两个变量中。你有更好的 CSV 吗? 另一种方法是使用正则表达式来捕获文件名和文件路径,但它实际上取决于所有行,如果所有行的文件名看起来像something.txt 问题出在 csv 上。非常感谢你们。 @BilzzM 查看我的答案,您可以如何使用re 来替代它。顺便说一句,如果对您有帮助,请标记答案。

ValueError:时间数据“0”与格式“%d/%m/%Y”不匹配

】ValueError:时间数据“0”与格式“%d/%m/%Y”不匹配【英文标题】:ValueError:timedata\'0\'doesnotmatchformat\'%d/%m/%Y\'ValueError:时间数据“0”与格式“%d/%m/%Y”不匹配【发布时间】:2018-03-1807:57:18【问题描述】:我正在尝试从CSV文件插入M... 查看详情

ValueError:长度不匹配:在熊猫数据框中创建分层列时,预期的轴有 0 个元素

】ValueError:长度不匹配:在熊猫数据框中创建分层列时,预期的轴有0个元素【英文标题】:ValueError:Lengthmismatch:Expectedaxishas0elementswhilecreatinghierarchicalcolumnsinpandasdataframe【发布时间】:2017-08-2816:22:30【问题描述】:我正在通过docu... 查看详情

Pandas 和 JSON ValueError:数组的长度必须相同

】Pandas和JSONValueError:数组的长度必须相同【英文标题】:PandasandJSONValueError:arraysmustallbesamelength【发布时间】:2021-12-0710:29:37【问题描述】:我正在尝试制作一个简单的应用程序,该应用程序将从歌曲中获取歌词并保存它们,我... 查看详情

ValueError:值的长度 (959) 与索引的长度 (5) 不匹配

】ValueError:值的长度(959)与索引的长度(5)不匹配【英文标题】:ValueError:Lengthofvalues(959)doesnotmatchlengthofindex(5)【发布时间】:2022-01-1315:57:20【问题描述】:请帮我解决以下错误。在***上尝试了各种帖子,仍然无法弄清楚。即使形... 查看详情

如何获取从最后一个匹配到文件末尾的行?

】如何获取从最后一个匹配到文件末尾的行?【英文标题】:Howtogetlinesfromthelastmatchtotheendoffile?【发布时间】:2022-01-0805:44:59【问题描述】:需要在最后一个匹配后打印行到文件末尾。匹配的数量可以是任意的,并且不是确定的... 查看详情

Pandas DataFrame:ValueError:值的长度(13)与索引的长度(12)不匹配

】PandasDataFrame:ValueError:值的长度(13)与索引的长度(12)不匹配【英文标题】:PandasDataFrame:ValueError:Lengthofvalues(13)doesnotmatchlengthofindex(12)【发布时间】:2021-11-1515:14:52【问题描述】:我试图从Pycharm和JupyterNotebook运行以下代码... 查看详情

获取 ValueError:在尝试运行 Adjt 时发现样本数量不一致的输入变量:[248, 1239]。 R 平方和 RMSE

】获取ValueError:在尝试运行Adjt时发现样本数量不一致的输入变量:[248,1239]。R平方和RMSE【英文标题】:GettingtheValueError:Foundinputvariableswithinconsistentnumbersofsamples:[248,1239]whiletryingtorunAdjt.RSquaredandRMSE【发布时间】:2021-02-1701:31:48【... 查看详情

数字后带有减号的 CSV 文件。 “ValueError:无法将字符串转换为浮点数:”

】数字后带有减号的CSV文件。“ValueError:无法将字符串转换为浮点数:”【英文标题】:CSVFilewithminussignafternumber."ValueError:couldnotconvertstringtofloat:"【发布时间】:2020-09-1601:02:39【问题描述】:我有几个CSV文件,其中一个... 查看详情

如何使用排序从输出文件 1 中的 F1 和 F2 中获取匹配记录,以及从输出文件 2 中的 F2 中获取不匹配记录

】如何使用排序从输出文件1中的F1和F2中获取匹配记录,以及从输出文件2中的F2中获取不匹配记录【英文标题】:HowtoGetMatchingrecordsfrombothF1&F2inoutputfile1andNon-MatchingRecordsfromF2inoutputFile2usingSort【发布时间】:2021-05-2516:56:48【问题... 查看详情

在文件匹配中排除文件

...ematch【发布时间】:2010-05-0221:42:58【问题描述】:我正在尝试在每个文件的开头添加一个gzip脚本php_valueauto_prepend_filegzip_start.php在我的.htaccess中。问题是我已经有了一个名为combine.php的文档,它可以压缩它的内容。我需要知道的... 查看详情

ValueError:无法将输入数组从形状(25,1)广播到形状(25)

】ValueError:无法将输入数组从形状(25,1)广播到形状(25)【英文标题】:ValueError:couldnotbroadcastinputarrayfromshape(25,1)intoshape(25)【发布时间】:2018-06-3014:11:11【问题描述】:当我尝试运行这个简单的sn-p代码时a=2G=np.random.rand(25,1)H=n... 查看详情

ValueError:尝试在***包之外进行相对导入-导入文件时[重复]

】ValueError:尝试在***包之外进行相对导入-导入文件时[重复]【英文标题】:ValueError:attemptedrelativeimportbeyondtop-levelpackage-whenimportfile[duplicate]【发布时间】:2020-12-0217:18:24【问题描述】:python3.7.7并在python3.6.0上尝试过我正在使用Dja... 查看详情

尝试将数据框列传递给 ANN 时出现 ValueError

】尝试将数据框列传递给ANN时出现ValueError【英文标题】:ValueErrorwhentryingtopassadataframecolumntoANN【发布时间】:2022-01-1602:25:27【问题描述】:在尝试将我的数据拟合到我的sklearnANN模型中时,我不断收到值错误。错误状态“ValueError... 查看详情

如何在 Python 中通过身份验证从 URL 获取 CSV 文件

】如何在Python中通过身份验证从URL获取CSV文件【英文标题】:HowtogetCSVfilefromURLwithauthenticationinPython【发布时间】:2022-01-1107:13:56【问题描述】:我正在做一个关于physionet的项目。我也有physionet证书。我正在尝试将csv文件直接放入... 查看详情

Java Mapreduce - 获取匹配文件的名称并打印到输出文件

】JavaMapreduce-获取匹配文件的名称并打印到输出文件【英文标题】:JavaMapreduce-gettingnamesoffileswithmatches&printingtooutputfile【发布时间】:2019-06-2805:49:40【问题描述】:您好,我一直在尝试提出标准WordCountv1.0的修改版本其中我从输... 查看详情

Excel 2016 尝试从重复匹配中获取唯一值

】Excel2016尝试从重复匹配中获取唯一值【英文标题】:Excel2016Tryingtogetuniquevaluesfromduplicatematches【发布时间】:2021-08-1603:57:45【问题描述】:我目前遇到了问题,需要一些帮助。我正在使用excel2016,在我当前的数据集(参见示例... 查看详情

ValueError:形状 (3,1) 的不可广播输出操作数与广播形状 (3,4) 不匹配

】ValueError:形状(3,1)的不可广播输出操作数与广播形状(3,4)不匹配【英文标题】:ValueError:non-broadcastableoutputoperandwithshape(3,1)doesn\'tmatchthebroadcastshape(3,4)【发布时间】:2018-05-0915:59:19【问题描述】:我最近开始在YouTube上关注SirajRava... 查看详情

ValueError:尝试在非包中进行相对导入[重复]

】ValueError:尝试在非包中进行相对导入[重复]【英文标题】:ValueError:Attemptedrelativeimportinnon-package[duplicate]【发布时间】:2015-12-0808:44:11【问题描述】:我有两个Python文件,一个存储在位置/Python/plata.py,另一个存储在位置/Python/ta... 查看详情