Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jython从python向java类发送java文件对象数组_Java_Python_Jython - Fatal编程技术网

Jython从python向java类发送java文件对象数组

Jython从python向java类发送java文件对象数组,java,python,jython,Java,Python,Jython,我认为这是一个python字符串问题。目标是从python/Jython向java类发送一个文件对象数组。我收到一个与发送到文件构造函数的字符串路径相关的错误。我相信这是因为我似乎无法摆脱双斜杠。python代码如下: from java.io import File from jarray import array myPath ='C:\\something\\somethingElse' onlyfiles = [ abspath(join(myPath,f)) for f in lis

我认为这是一个python字符串问题。目标是从python/Jython向java类发送一个文件对象数组。我收到一个与发送到文件构造函数的字符串路径相关的错误。我相信这是因为我似乎无法摆脱双斜杠。python代码如下:

from java.io import File
from jarray import array

myPath ='C:\\something\\somethingElse'
onlyfiles = [ abspath(join(myPath,f)) for f in listdir(myPath) if isfile(join(myPath,f))]

jythonArray = array(onlyfiles, String)
temp=array(onlyfiles,File)
我得到错误“TypeError:无法将'C:\…”转换为Java.io.File
我也试过了。在理解中替换(“\\”,“\\”)无效。当我在字符串中键入完整路径并将其发送到java.File对象时,它就可以工作了。问题似乎是,我无法通过理解摆脱路径中的。任何帮助都将不胜感激。谢谢大家!

这里的问题是
onlyfiles
是字符串列表(
),而不是文件列表。回想一下,在Python中,文件路径通常只作为字符串处理,并且
os.path.*
方法获取字符串并返回字符串

因此,您需要使Java
文件
s脱离字符串。一种方法是这样的:

onlyjavafiles = [File(f) for f in onlyfiles]
因此,完整示例如下所示(注意,我添加了缺少的导入):


非常有效,谢谢!我误解了医生的意思。array()不会通过文件构造函数运行字符串列表来生成文件列表。它只定义数组的类型。知道了!
from java.io import File
from java.lang import String
from jarray import array, zeros
from os import listdir
from os.path import isfile, join, abspath

myPath = '/tmp'
onlyfiles = [abspath(join(myPath, f)) for f in listdir(myPath) if isfile(join(myPath, f))]
onlyjavafiles = [File(f) for f in onlyfiles]

jythonArray = array(onlyfiles, String)
temp = array(onlyjavafiles, File)