簡體   English   中英

從文件中獲取python中的字符輸入?

[英]taking a character input in python from a file?

在python中,假設我有data.txt文件。 其中有6行數據。 我想通過遍歷每個字符並找出文件中'\\ n'的數量來計算我計划執行的行數。 如何從文件中輸入一個字符? Readline占據了整行。

我認為您正在尋找的方法是readlines ,如

lines = open("inputfilex.txt", "r").readlines()

這將為您提供文件中每行的列表。 要找出多少行,您可以執行以下操作:

len(lines)

然后像使用任何普通的Python列表一樣使用索引來訪問它,例如lines[3]lines[-1]

您可以使用read(1)讀取單個字節。 help(file)說:

read( size ) ->讀取最多size個字節,以字符串形式返回。

如果size參數為負或省略,請讀取直到達到EOF。 請注意,在非阻塞模式下,即使沒有給出size參數,返回的數據也可能少於請求的數據。

請注意,一次讀取一個字節的文件是完全“ Pythonic”的。 這是用C語言完成的課程,但是Python可以用更少的代碼來做更多的工作。 例如,您可以用一行代碼將整個文件讀入一個數組:

lines = f.readlines()

然后,您可以通過簡單的lines[lineNumber]查找按行號進行訪問。

或者,如果您不想一次將整個文件存儲在內存中,則可以逐行對其進行迭代:

for line in f:
    # Do whatever you want.

這更具可讀性和慣用性。

看來,最簡單的答案是:

for line in file:
    lines += 1
    # do whatever else you need to do for each line

或顯式使用readline()的等效構造。 我不確定您為什么要在上面說readline()正確讀取每行的全部內容時查看每個字符。

要基於文件的行訪問文件,請列出其行。

with open('myfile') as f:
    lines = list(f)

然后只需訪問lines[3]以獲取第四行,依此類推。 (請注意,這不會刪除換行符。)

linecache模塊對此也很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM