我无法读取文件,我也不明白为什么:
f = open("test/test.pdf", "r")
data = list(f.read())
print data
返回:[]
我想打开一个PDF,并提取每个字节,并将其放入List。
我的代码出了什么问题? :(
谢谢,
答案 0 :(得分:11)
f = open("test/test.pdf", "rb")
在Windows上读写时,必须包含二进制伪模式“b”。否则,操作系统会默默地翻译它认为是“行结尾”的内容,导致i / o损坏。
答案 1 :(得分:1)
Jonathan是正确的,如果你在Windows上,你应该以二进制模式打开文件。
但是,PDF文件将以“%PDF-”开头,无论您是否使用二进制模式,都至少会读取该文件。
所以在我看来你的“test / test.pdf”是一个空文件
答案 2 :(得分:0)
b
,即open(filename, "rb")
。
b
并没有伤害任何东西,虽然它没有任何意义。f = open("test/test.pdf", "rb")
,而是with open("test/test.pdf", "r") as f:
。这将确保您的文件始终关闭。list(f.read())
不太可能经常使用有用的代码。 f.read()
重新发送str
并在其上调用list
会生成一个字符列表(一个字节的字符串)。这很少需要。read
应该有效。你是否肯定test/test.pdf
中有什么? Python似乎并不认为有。答案 3 :(得分:0)