当前位置: 首页 > 知识库问答 >
问题:

Python - 类型错误:无法在路径组件中混合字符串和字节

梁锋
2023-03-14

以下代码:

import os

directory_in_str = 'C:\\Work\\Test\\'
directory = os.fsencode(directory_in_str)

for file in os.listdir(directory):
    filename = os.fsdecode(file)
    if filename.lower().endswith(".xml"):
        with open(os.path.join(directory, filename), 'r') as handle:
            for line in handle:
                print(line)
    else:
        continue

给了我这个错误:

Traceback (most recent call last):
  File "c:\Work\balance_search2.py", line 9, in <module>
    with open(os.path.join(directory, filename), 'r') as handle:
  File "C:\ProgramData\Anaconda3\lib\ntpath.py", line 114, in join
    genericpath._check_arg_types('join', path, *paths)
  File "C:\ProgramData\Anaconda3\lib\genericpath.py", line 151, in _check_arg_types
    raise TypeError("Can't mix strings and bytes in path components") from None
TypeError: Can't mix strings and bytes in path components

谁能帮我修复它。

共有1个答案

许波涛
2023-03-14

只需删除这一行:目录=os.fsencode(directory_in_str)。不需要对目录名进行编码。

 类似资料:
  • 问题内容: 在Python中删除错误路径字符(例如Windows上的“ \”或“:”)的最跨平台方法是什么? 解 因为似乎没有理想的解决方案,所以我决定采用相对严格的限制,并使用了以下代码: 问题答案: 不幸的是,可接受的字符集因操作系统 和 文件系统而异。 Windows: <>:“ / / |?* * 不允许使用整数表示形式(介于0到31之间)的字符。 * 目标文件系统不允许的任何其他字符。

  • 元组(Tuple) 在别的语言里,你可能听过元组这个词,它表示一个大小、类型固定的有序数据组。在 Rust 中,情况并没有什么本质上的不同。不过 Rust 为我们提供了一系列简单便利的语法来让我们能更好的使用他。 let y = (2, "hello world"); let x: (i32, &str) = (3, "world hello"); // 然后呢,你能用很简单的方式去访问他们: /

  • 问题内容: 我有一系列 独特的 字符串,其中包含数字,有时还包含数字和一个字母,其中的一个示例为: 1倍 2倍 2年 12倍 20 21岁 数字始终在字母前。产生清单的ORDER BY(T-SQL)子句解决方案是什么? 我尝试使用 LEN( fieldName ), fieldname- 可以使用,但适用于20和21。我尝试将字符串表示为整数,但是CAST在转换过程中失败。 问题答案: 我从这里偷

  • 这章我们来着重介绍一下字符串。 刚刚学习Rust的同学可能会被Rust的字符串搞混掉,比如str,String, OsStr, CStr,CString等等…… 事实上,如果你不做FFI的话,常用的字符串类型就只有前两种。我们就来着重研究一下Rust的前两种字符串。 你要明白的是,Rust中的字符串实际上是被编码成UTF-8的一个字节数组。这么说比较拗口,简单来说,Rust字符串内部存储的是一个u

  • 我正在学习Oracle.com上的基本I/O教程,但我在创建Path对象方面遇到了困难: 我在Linux上,我在Eclipse Kepler中工作。我正在尝试访问当前目录中的一个文本文件。使用扫描仪和文件,我可以处理文件,但我也想摆弄一个文件的路径,这样我就可以继续与教程。 编辑:整个程序如下所示。后半部分是我作为一个菜鸟,并确认文件存在/工作。当我注释掉路径定义时,我会得到“test”的输出,它

  • 当我部署以下内容时,我收到了这个错误: 错误: 在_helpers.tpl中定义: <code>。图表。名称是一个内部变量,这里解释了首选顺序,但即使设置 在任何其他模板中都很好,所以我认为问题与所使用的的范围有关。 使用的值: