在Java代码中,我想连接到HDFS中的目录,了解该目录中的文件数量,获取它们的名称并想要读取它们.我已经可以读取文件,但我无法弄清楚如何计算目录中的文件并获取文件名,如普通目录.
为了阅读我使用DFSClient并将文件打开到InputStream中.
我正在使用PIL的Pillow fork并继续收到错误
OSError:无法在0x103a47468>处识别图像文件<_io.BytesIO对象
当试图打开图像时.我使用virtualenv与python 3.4并没有安装PIL.
我试图根据遇到同样问题的其他人找到解决方案,然而,这些解决方案对我不起作用.这是我的代码:
from PIL import Image
import io
# This portion is part of my test code
byteImg = Image.open("some/location/to/a/file/in/my/directories.png").tobytes()
# Non test code
dataBytesIO = io.BytesIO(byteImg)
Image.open(dataBytesIO) # <- Error here
Run Code Online (Sandbox Code Playgroud)
图像存在于文件的初始打开中,并转换为字节.这似乎适用于几乎所有人,但我无法弄清楚为什么它失败了.
编辑:
dataBytesIO.seek(0)
Run Code Online (Sandbox Code Playgroud)
因为我不是通过流保存图像,所以我不是通过流保存图像,因此我只是用数据实例化BytesIO,因此(如果我正确地想到这一点),搜索应该已经为0.
我有一个最简单的脚本叫 update.sh
#!/bin/sh
cd /home/pi/circulation_of_circuits
git pull
Run Code Online (Sandbox Code Playgroud)
当我从终端呼叫这个时,./update.sh我得到了一个已经是最新的,或者像预期的那样更新文件.
我也有一个python脚本,在scipt里面是:
subprocess.call(['./update.sh'])
当我调用相同的脚本时,我得到:
权限被拒绝(publickey).致命:无法从远程存储库读取.
请确保您具有正确的访问权限并且存储库存在.
(我使用SSH).
-----------------更新--------------------
别人看了我一眼:
好的,所以有些进展.当我启动你的图像时,我无法在你的repo目录中运行git pull,而bash脚本也会失败.这似乎是因为bitbucket存储库是私有的,需要对pull进行身份验证(我使用的那个是公共的,这就是为什么我没有问题).大概是git在你第一次输入它之后记得这个,bash不知何故欺骗git认为你随后键入命令但是从python运行它是不一样的.
我不是一个git专家,但必须有一些方法来设置它,以便python可以提供身份验证.