转换代码以将Windows中的文件读取到linux

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转换代码以将Windows中的文件读取到linux相关的知识,希望对你有一定的参考价值。

我目前从cv2 resize收到一个错误,表明文件中没有任何内容。它在Windows上工作正常,但我正在努力找出需要做的事情(除了路径名称的更改)以便在Linux上工作。

path1 ='C:/Users/L/Software/Data/channels/ch3'

listing = os.listdir(path1)

ch3_matrix = array([array(cv2.resize(cv2.imread(path1 + '\' + im2,0),(55,55))).flatten()
            for im2 in listing])
答案

问题是你正在构建的最终路径:

path1 + '\' + im2

其中path1是你的基目录,im2是图像文件名。这样做(使用字符串连接)可能会导致问题非常快,并且通常不鼓励。

我建议使用os.path.join或更新的pathlib模块,它们都与平台无关:

import os

BASE_PATH = 'C:/Users/L/Software/Data/channels/ch3'

images = os.listdir(BASE_PATH)
ch3_matrix = array([
    array(cv2.resize(cv2.imread(os.path.join(BASE_PATH, image), 0), (55, 55))).flatten()
    for image in images
])

要么

import pathlib

BASE_PATH = pathlib.Path('C:/Users/L/Software/Data/channels/ch3')

images = os.listdir(BASE_PATH)
ch3_matrix = array([
    array(cv2.resize(cv2.imread(str(BASE_PATH / image), 0), (55, 55))).flatten()
    for image in images
])

要使您的代码在Linux上运行,您只需要更改BASE_PATH

以上是关于转换代码以将Windows中的文件读取到linux的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助修复代码以将文本框中的值转换为 ActionScript 3 中的变量

如何使用 java 创建一个独立的应用程序以将 JSON 文件数据转换为 Excel [关闭]

读取文本文件以将数据插入 Oracle SQL 表

将文件中的数据存储到数组中

我能够在 Windows(Visual C++)中读取 bin 文件,但不能在 linux(GCC)上读取 [关闭]

如何设置 Visual Studio 以将所需的 DLL 文件复制到发布版本中的发布目录中?