Code M In My Time Zone

Python basic: IO

2017-07-09

Write and Read File

在一個檔案中寫入26個英文字母,每個字母一行

import string

with open("letters.txt", "w") as file:
    for l in string.ascii_lowercase:
        file.write(l + "\n")

依26個字母製作26個txt檔案

  • 每個檔案檔名為A.txt-Z.txt,每個檔案中有一個和檔名相同的字母
import string, os

if not os.path.exists("AtoZ"):
    os.makedirs("AtoZ")

for letter in string.ascii_uppercase:
    with open("AtoZ/" + letter + ".txt", "w") as file:
        file.write( letter + "\n")

先判斷將被執行的程式目錄中是否有AtoZ的資料匣,沒有的話先做一個,然後把相關檔案產生致該資料匣中。

由26個字母檔的每個字並放入list中

上面的練習是在AtoZ 資料匣中寫入A到Z的字母檔案,下面是把該資料匣中的文字讀入,並放到list裡

import glob

letters = []
file_list = glob.glob("AtoZ/*.txt")

for filename in file_list:
    with open(filename, 'r') as file:
        letters.append(file.read().strip('\n'))

print(letters)
#['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']

這邊使用glob,用來搜尋資料匣中的文件,使用glob可以像在linux中使用find指令,例如在執行此python 程式的路徑中,有AtoZ的資料匣,則在linux 的console中,可以下 find AtoZ/*.txt 列出所以有AtoZ中txt檔案。


Similar Posts

Comments

Content