2017-07-17 52 views
2

特定字符我有這樣一個文本文件,它的Python - 獲取從文本文件或從列表

窗簾開放時間:8:00

當我寫信給我使用的文件這

File.write("Curtain Open Time: " + Var_CurtainOpenTime, + "\n") 

我用「\ n」去更多的數據寫在下一行。在這種情況下,「Var_CurtainOpenTime」是一個變量,它是「8:00」。我有一些代碼來讀取這樣的行:

FileRead = open('File.txt', 'r') 

打印這將閱讀「窗簾開放時間:8:00」。

我希望能夠得到「8:00」。我以前用FileRead.split(" ")來分隔每個單詞,但在8:00之後,我得到了["Curtain", "Open", "Time:", "8:00\n"]。所以我相信我需要刪除前三個索引,並以某種方式從最後一個索引中刪除'\ n'。我不知道我會怎麼做。任何幫助?

回答

0

那麼一旦你從拆分列表中,您可以通過執行l=l[3:](其中l是您的列表)刪除前3個術語。然後,您可以通過執行s = s[:-1]來刪除\n,其中s是您想要的字符串。這是使用列表切片。如果您想進一步瞭解它,可以查看文檔。

+0

是的,我已經做到了這一點,但支架和撇號[」 8:00']仍然保持 – ThePGT

1

你只需要從.split(」「),以.split(),然後獲得最後列表項

with open('file.txt') as f: 
    print f.read().split()[-1] 
+0

小心,op要第3元素!無論如何是一個加號 –

+0

我已經嘗試過,並結合FileRead =(FileRead [3 ::])刪除「窗簾開放時間」。它刪除'\ n',但一旦打印['8:00']括號,報價仍然存在。 – ThePGT

+0

haha​​h @DamianLattenero謝謝你,我只是把我的答案放在刪除'\ n'上,忘記了第二部分。但是我剛剛學到了一些新的東西......它不是必須的'.replace('\ n')'只需使用不帶參數的.split()'而不是'.split(「」)'就可以做到這一點,所以我更新了我的回答 – efirvida

2

嘗試以下改變,我會評論的解釋

with open('File.txt') as f: 
    [line.replace('\n','').split()[3:][0] for line in f][0] 

或者只是:

FileRead = open('File.txt', 'r') 

result = [line.replace('\n','').split()[3:][0] for line in FileRead][0] 
+0

您複製我的答案與'split'部分中的缺失點;)我修好了我的。修理你的 – efirvida

+0

@efirvida aaaaaaah,你有我,是的,我看到這是一個上帝的主意,但仍然不能正常工作,你也看看你的答案:),你太接近了 –