簡體   English   中英

如何從目錄中的所有文件中讀取行?

[英]How do you read lines from all files in a directory?

我在一個目錄中有兩個文件。 我想從每個文件中讀取行。 不幸的是,當我嘗試使用以下代碼執行此操作時,沒有輸出。

from pathlib import Path 

p = Path('tmp')
for file in p.iterdir():
   print(file.name)

函數.py
測試.txt

for file in p.iterdir():
    f = open(file, 'r')
    f.readlines()

你應該從 text.py 打印這樣的數據

count = 1
f = open(file, 'r')
Lines = f.readlines()
for line in Lines:
    count += 1
    print("Line {}: {}".format(count, line.strip()))

輸出將如下所示:

Line 1: ...
Line 2: ...
Line 3: ...

您可以在此處查看閱讀行示例 - 行閱讀

您可以使用fileinput

import os
import fileinput

for line in fileinput.input(os.listdir('.')):
    print(line)

您正在讀取文件中的所有行,但沒有輸出它們。 如果要將行打印到標准輸出,則需要像在第一個示例中一樣使用print()

您還可以使用上下文和更多迭代器更優雅地編寫此代碼:

from pathlib import Path 

file = Path('test.txt')
with file.open() as open_file:
    for line in open_file:
        print(line, end="")

測試.txt:

Spam
Spam
Spam
Wonderful
Spam!
Spamity
Spam

結果:

Spam
Spam
Spam
Wonderful
Spam!
Spamity
Spam

使用上下文打開文件( with file.open() )意味着您固有地設置了關閉文件,並且行的迭代器( for line in open_file )意味着您不會一次加載整個文件(一個重要的考慮使用更大的文件)。

根據您的源文件的結構方式,在print()設置end=""是可選的,否則您最終可能會在輸出中打印額外的空白行。

暫無
暫無

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

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