Python循环批量创建文件报TypeError: expected str...not tuple如何解决?
错误产生原因
filename=(i_str, '.txt')使用逗号分隔两个值,在Python中该写法会生成元组,但open()函数的第一个路径参数仅支持字符串、字节或者os.PathLike类型的对象,不接受元组作为入参,因此触发类型错误。- 代码中
i_str=str写法有误,此处仅将str类本身赋值给了变量,没有完成将数字i转为字符串的逻辑,正确写法应为str(i)。 - 循环中遍历得到的
it变量(即列表内的a/b/c等字符)没有被实际使用,不符合按列表内容命名文件的潜在需求。
修复后的代码
根据不同的命名规则,提供两种可直接运行的实现:
方案1:按数字序号命名(生成1.txt、2.txt、3.txt...)
推荐使用with上下文管理器写法,无需手动调用close(),可避免文件资源泄漏:
ll=['a','b','c','e','f'] # enumerate第二个参数start指定序号起始值为1 for i, it in enumerate(ll, start=1): # 用f-string拼接文件名,语法更简洁易读 with open(f"{i}.txt", 'w') as f: f.write("i dont think you can close this mate :)")
方案2:按列表内的字符命名(生成a.txt、b.txt、c.txt...)
ll=['a','b','c','e','f'] for char in ll: with open(f"{char}.txt", 'w') as f: f.write("i dont think you can close this mate :)")
内容的提问来源于stack exchange,提问作者Jibson Paul
相关产品推荐
相关产品推荐

