- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确定这已经发布在 StackOverflow 和 Google 之间的某处,但我无法找到解决方案,因为我不知道要搜索的确切术语。
我将尝试尽可能具体。我有一堆 zip 文件,里面有报告,名称如 Process123456789results.csv。我需要将 CSV 文件重命名为其父 ZIP 文件夹的名称。
所以为了便于理解我需要把这个:
进入这个:
为此,我使用 ZipFile,我的脚本看起来有点像这样(这里的程序员非常缺乏经验,所以欢迎所有批评):
Extracted = []
x = 0
for attachment in zip:
with zipfile.ZipFile("IntendedName.zip", "r") as z:
z.extractall()
Extracted = [z.namelist()]
os.rename(Extracted[x], "IntendedName.csv")
os.remove("IntendedName.zip")
x +=1
理想的最终结果是:
提取 CSV
将 CSV 重命名为 ZIP 文件名。
清理 zip 文件,只留下重命名的 CSV。
我的问题:
运行我的代码时出现以下错误必须是字符串,而不是列表。我已经尝试从几个不同的角度来解决这个问题,但无法完全解决这个问题。我知道这不是一回事,但我正在阅读 C 中的“类型转换”。我可以在这里做类似的事情吗?我打算获取所有名称的列表并将其导出到一个文本文件并使用它..但这感觉像是一种肮脏的方式来解决这个问题。
我不知道这是否会成为问题,但使用调试器我可以看到“Extracted”的值最终看起来像这样:[u'Process123456789results.csv'] 当从 z.namelist() 调用时,我认为(未确认)会在修复数字 1 后破坏脚本,因为当我尝试重命名文件时,它会无法通过上面的粗体名称找到文件,而不仅仅是“Process123456789results.csv”。是否可以通过删除无关字符来修改列表?这可能只是我想多了。我什至不知道这是否是一个问题,因为我无法通过上述问题。
如果我对某些事情不清楚,我深表歉意。我会尽力回答任何问题。如果有帮助,我可以发布我正在处理的整个代码。不过,它并不十分漂亮。
解决方案:
在得到一些指导后,我能够弄清楚如何解决这个问题。我在上面第 2 条中谈到的问题从来没有成为问题。第 1 条由下面一些非常有帮助的人解决。
我在 Shank 的评论中提到的“索引错误”问题已通过以下代码解决:
Extracted = []
x = 0
for attachment in zip:
with zipfile.ZipFile("IntendedName.zip", "r") as z:
z.extractall()
Extracted.extend(z.namelist())
os.rename(Extracted[x], "IntendedName.csv")
os.remove("IntendedName.zip")
x +=1
编辑:删除多余的括号。再次编辑:添加了一个完整的解决方案。感谢大家的帮助!
最佳答案
对于 os.rename(Extracted[x], "IntendedName.csv")
,Extracted[0]
似乎指向一个名称列表。如果您想遍历名单,只需将您的分配设为 Extracted = z.namelist()
。当您执行 Extracted = [z.namelist()]
时,它会将列表包装在列表中,因此当您访问 0 索引元素以将其传递到 os.rename
时,您实际上传递的是一个列表作为第一个参数,而不是它期望的字符串。
关于python - TypeError : Must be String, 未列出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29478086/
我正在尝试查找first_row = [1, 2, 3, 4, ...] 目前,我有 list = [[1, a], [2, b], [3, c], [4, d], ...] 并尝试运行:list[:
我正在尝试查找first_row = [1, 2, 3, 4, ...] 目前,我有 list = [[1, a], [2, b], [3, c], [4, d], ...] 并尝试运行:list[:
我正在尝试构建一个应用程序以提交到 AppStore.. 每次我尝试构建它时,我都会在验证期间收到一条警告: The dwarfdump binary must exist and must be e
我正在关注这个“ Hello World ”教程: https://steemit.com/eos/@skenan/eos-development-for-beginners-webassembly
所以有点背景。我一直在尝试在 CentOS 6 机器上设置 Hive。我按照这个 Youtube 视频的说明操作:http://www.youtube.com/watch?v=L2lSrHsRpOI
我是 graphQL 新手,我正在尝试在后端的resolvers.js 文件下更新用户配置文件密码,但我已经坚持了一段时间,并且不断收到相同的错误消息。 resolvers.js updatePass
我有一个程序正在使用用户指定的测量值来计算矩形的面积。出于特定原因,我正在使用一个类来执行此操作,但是我的编译器会生成两个错误... expression must have class type l
在处理数据结构类的图类时,我遇到了边缘对象问题: myGraph.nodes[a]->edges.back.n1 = myGraph.nodes[a]; myGraph
我正在将此方法添加到公共(public)静态类 public static LogMessage(Exception ex) { Trace.WriteLine(ex.
我经常用 Cache-Control: no-cache 或 Cache-Control: max-age=0 规范说must-revalidate是为了max-stale...(服务器问题max-s
每当从列出的类中运行下面的行时,我在版本 2017.2.0f3 和 2017.2.1f1 中遇到此错误,但它在 5.5.0.f3 中完美运行 WWW request = new WWW(m_host,
我已经在我的 Ubuntu EC2 实例上安装了 Hadoop,并按照本教程完成了安装 hive 的所有步骤:http://www.tutorialspoint.com/hive/hive_insta
您好,在此先感谢您的帮助! 当我尝试执行从 GitHub 提取的时间序列分解时,出现ValueError: You must specify a period or x must be a panda
为了寻求有关问题的建议和帮助,我在运行 Xubuntu Linux 16.04 LTS 的笔记本电脑上新安装了 Oracle XE。我关注了this发布我的安装。 在 Oracle XE 安装位置 /
当通过 AD 帐户登录时,我在尝试在 C# MVC Web 应用程序中加载 p12 证书文件时遇到问题。 我们在加载证书时遇到的错误是:必须信任计算机才能进行委托(delegate),并且当前用户帐户
我想使用 IOptions 通过 POCO 获取配置,但它会抛出错误消息“模型绑定(bind)的复杂类型不能是抽象类型或值类型,并且必须具有无参数构造函数” DatabaseSettings.cs p
正确执行加法模型有一些问题。 我有那个数据框: 当我运行此代码时: import statsmodels as sm import statsmodels.api as sm decompositio
感谢有关 tutorialspoint 和 stackoverflow 的有用信息,我几乎完成了在 Oracle VirtualBox 上的 Ubuntu 上安装 Hive 3.1.1 和 Hadoo
这是我用于测试目的的简单代码。 boolean isMoving(){ if (a == b) { return true; } else if (a != b) {
如果我的模型中有这样的属性: [BindProperty] public IPagedList Products { get; set; } 然后当我尝试发布时,我收到此错误: An
我是一名优秀的程序员,十分优秀!