打开文件返回空

时间:2017-05-03 12:51:23

标签: python file

我想打开一个.java文件,文件名中包含“Application”。该文件是正确访问但我尝试读取文件时得到一个空字符串。

该文件不为空, application_class.tell()返回0(表示读取的指针位于文件的开头)。我能做些什么来阅读我的文件?

import os

files = [f for f in os.listdir('.') if os.path.isfile(f)]
filename_application = ""

for file in files:
    if "Application" in file:
        filename_application = file
application_class = open(filename_application, "r")
#application_class.seek(0)
print(application_class.tell())
print(application_class.read())

我的目录

$ ls
CustomersApplication.java main.py

2 个答案:

答案 0 :(得分:1)

tell()尺寸,您需要seek()结束文件:

application_class.seek(0, os.SEEK_END)
print(application_class.tell())

答案 1 :(得分:0)

application_class.tell()返回当前位置,这是正确的。 尝试更改read()和tell()的顺序。

此外,该计划可以简化:

import os

files = [f for f in os.listdir('.') if os.path.isfile(f) and "Application" in f]

filename_application = files[0] if files else ""
if not filename_application:
    print "Application not found!"
else:
    application_class = open(filename_application, "r")
    print(application_class.read())
    print(application_class.tell())