日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

python中print又可将数据写入文件_Python第五课-将写入文件的列表格式化

發布時間:2025/3/15 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中print又可将数据写入文件_Python第五课-将写入文件的列表格式化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、上節課代碼中的問題 第四課中介紹了python持久化的基礎實例——將數據寫入文本文件。 可當我們試著把保存數據的文件讀取出來會怎樣呢? try: with open('man.txt', 'r') as fman: print(fman.readline())except IOError as err: print(str(err)) 執行時,

1、上節課代碼中的問題

第四課中介紹了python持久化的基礎實例——將數據寫入文本文件。

可當我們試著把保存數據的文件讀取出來會怎樣呢?

try:

with open('man.txt', 'r') as fman:

print(fman.readline())

except IOError as err:

print(str(err))

執行時,返回一大...串兒字符串。里邊包含了man.txt文件中的所有數據。

這種未被格式化的存儲方式基本上是沒什么用的!除非你把整個文件當一個字符串讀出來,然后再去想各種辦法解析...

2、把即將寫入文本文件的數據格式化:

當然我們可以寫出新的代碼來實現數據格式化。

可第二課中我們曾經創建過一個nester模塊,里邊的print_lol函數就是用來格式化列表的。為什么不把它改造一個直接拿來使用呢?不要重復造輪子嘛...OOP吧!

改造print_lol函數(原代碼在第二課中):

'''''模塊名:nester

其中包含一個函數:print_lol 用于輸出一個可能嵌套有其他列表的列表'''

def print_lol(the_list, level=0, d='\t', indent=False, file_name=sys.stdout):

'''''函數print_lol, 使用遞歸的方式輸出一個可能嵌套有其他列表的列表

參數the_list, 是需要輸出的列表

參數level, 是整形,表示縮進級別,默認值為0

參數d, 是字符串,表示縮進符號,默認值為制表符

參數indent, 是一個布爾值,表示是否進行縮進,默認為否

參數file_name, 為需要寫入的文件名,默認為不寫入任何文件直接輸出'''

for each_item in the_list:

if isinstance(each_item, list):

print_lol(each_item, level+1, file_name)

else:

if indent:

for tab_stop in range(level):

print(d, end = '', file = file_name)

print(each_item, file = file_name)

改造寫入文件的代碼塊(原代碼在第四課中):

'''使用新的print_lol函數來取代print() 這個BIF'''

import nester

man = []

other = []

try:

data = open('sketch.txt')

try:

for each_line in data:

(role, line_spoken) = each_line.split(':', 1)

line_spoken = line_spoken.strip()

if role == 'man':

man.append(line_spoken)

else:

other.append(line_spoken)

except ValueError:

pass

data.close()

except IOError as ioerr:

print('File Error :' + str(ioerr))

try:

with open('man_data.txt', 'w') as man_file, open('other_data.txt', 'w') as other_file:

nester.print_lol(man, file_name = man_file) #把此處的print BIF改為帶有格式化列表和寫入文件功能的pring_lol函數

nester.print_lol(other, file_name = other_file)

except IOError as ioerr:

print('File Error: ' + str(ioerr))

如此便可以利用現有的print_lol函數,實現把格式化后的列表寫入文本文件。

總結

以上是生活随笔為你收集整理的python中print又可将数据写入文件_Python第五课-将写入文件的列表格式化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。