2017-05-03 67 views
0

我想打开一个文件,它是.java,并在文件名中包含“应用程序”。该文件访问正确,但在尝试读取文件时收到一个空字符串。打开文件返回空

该文件不是空的,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 
+0

我认为你需要,除非你希望每个目录 – TLOwater

+0

我希望只有一个应用程序文件只有一个应用程序文件,以更改您的缩进,这是“主”的我的Java项目。 –

+0

从测试看来,您看起来不像是只能读取Java文件 – TLOwater

回答

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()) 
+0

我的application_class.read()无论如何返回一个空字符串:-( –

+0

检查什么'open'返回另外,尝试打印filename_application以确保这是你之后的文件。 – Ashalynd

1

tell()大小,你需要seek()到文件结尾的:

application_class.seek(0, os.SEEK_END) 
print(application_class.tell()) 
相关问题