2017-05-03 64 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()) 
相關問題