2017-05-14 59 views
-1

我是python的新手,我需要這個測試。 我有兩個txt文件,其中有一個電影院的座位數據。 我正在嘗試打開文件,讀取所拍攝的座位以及那些免費且想要存儲此信息的座位。在Python中打開一個.txt文件並分別讀取每個字符並存儲它

的TXT看起來有點像這樣:

xxxxooxoxxx 
xooxoxxoxox 
ooxxxoxooxx 

鄰s爲在座椅是免費的,X-S取。 所以第二次原料的第一個席位被佔用,但第三個和第四個是免費的。

我不知道如何正確存儲數據或按字符打開文件字符我猜。我真的不知道如何開始。

+0

我不知道爲什麼你認爲你必須按字符讀取文件字符才能實現你的目標。爲什麼不逐行閱讀文件,然後檢查每一行的所有字符? – timgeb

+0

我也不確定你的問題到底是什麼,因爲你沒有給我們任何具體的結果/輸出的示例txt文件。 – timgeb

+0

你能更清楚地定義這個問題嗎?你在問如何讀取文件?或者如何保存文件?或者如何分離文件中的不同值? –

回答

4

我希望我能正確理解你的問題。如果你的文件不是非常大(超過幾百MB),那麼你可以優先讀取整個文件並將其內容存儲到一個變量中。

假設這個txt文件保存爲data.txt。然後你可以用這兩行打開一個文件:

with open('data.txt') as f: 
    data = f.readlines() 

數據現在是行列表。

>>> data 
['xxxxooxoxxx\n', 'xooxoxxoxox\n', 'ooxxxoxooxx\n'] 

現在,我會將數據列表轉換爲布爾值的2d數組。這是一個醜陋的一個班輪:

>>> taken = [[seat == 'x' for seat in row.rstrip()] for row in data] 

現在你可以決定是否座椅採取或不喜歡這樣的:

>>> taken[1][1] 
False 
>>> taken[1][0] 
True 
+0

謝謝,你真棒。 這個想法有點太複雜了,但我看了一個YT vid,明白你在這裏解釋的是什麼,現在我確實正是我所需要的。 謝謝! –

+0

@BotondHorváth不要忘記接受這個答案,如果它解決了你的問題。它會標記此問題已解決 –

+0

@matejm您正在使用一個醜陋的單線程引用您的話。由於我對此有點新,所以我想了解並提出一些我可以更好地看到的內容,而不僅僅是複製和粘貼。 onestring = foglaltsag.readline() 字符串= foglaltsag.readlines() allseats = 「」。加入(字符串) 行數= [] 座椅= [] 炭= 300 原始= 0 N1 = 0 N2 = 0 而N 2 = 20: 而LEN(座椅)= 15: seattype = allseats [N1] seats.append(seattype) N1 = N1 + LEN(onestring) N2 = N2 + 1 n1 = original + 1 original = original + 1 –

0

要打開同一目錄中的Python文件的文件,使用

file=open("file.txt","r") 
file1=file.read() 

這是你如何打開讀模式文件(r)。現在你想有一個字符列表,所以你可以使用列表功能。

file1=list(file1) 

現在你得到所有字符的列表。如果你想用換行符分割它,而不是使用列表,請使用split。

file1=file1.split('\n') 

最後,關閉文件。

file.close() 
0

可以讀取一個文件在python 開放功能帶「R」選項:

with open("file.txt", 'r') as f: 
    for row in f: 
     for each_char in str(row): 
      print each_char 
      # Here use your statement 
相關問題