欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python:關(guān)于文件加載及處理方式

 更新時間:2022年09月26日 16:38:52   作者:開心郵遞員  
這篇文章主要介紹了python:關(guān)于文件加載及處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

關(guān)于文件加載及處理

1、檢查python

關(guān)于文件加載及處理方式文件路徑是否存在,如果不存在就創(chuàng)建此路徑。

#如果不存在路徑,就創(chuàng)建一個這樣的路徑
?? ?if not os.path.exists(exp_path):
?? ??? ?os.mkdir(exp_path)
  • os.path.exists():判斷括號里的文件是否存在的意思,括號內(nèi)的可以是文件路徑.如果存在就返回True,不存在返回False
  • os.mkdir():創(chuàng)建路徑

2、對文件夾下面的文件名稱進行列表排列

file_list = os.listdir(dir_path)

3、過濾不符合要求的文件

filter() 函數(shù)用于過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表

filter(function, iterable)
  • function -- 判斷函數(shù)。
  • iterable -- 可迭代對象
def is_odd(n):
? ? return n % 2 == 1
?
newlist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(newlist)
[1, 3, 5, 7, 9]

4、用于將元組轉(zhuǎn)換為列表

  • list()

^(* ̄(oo) ̄)^

元組與列表是非常類似的,區(qū)別在于元組的元素值不能修改。

元組是放在括號中,列表是放于方括號中

5、打開文件codeces,open()

查閱資料后和實驗后,發(fā)現(xiàn)和open()的功能差不多,但在進行爬蟲或者其他方式得到數(shù)據(jù)寫入文件時會有編碼不統(tǒng)一的問題,所以就一般都統(tǒng)一轉(zhuǎn)換為Unicode編碼。

總之,用codeces,open()更便捷點。

6、readlines()

每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中,返回list類型

7、strip()

每次按行讀取整個文件內(nèi)容,將讀取到的內(nèi)容放到一個列表中,返回list類型 

python文件處理(總結(jié))

1、txt文件

1.1 txt文件讀取

? ? ? ? with open("11.txt", 'r') as file:
? ? ? ? ? ? for l in file:
? ? ? ? ? ? ? ? idnos.append(l.replace('\n',''))
? ? ? ? f.close() ?# 關(guān)閉文件,這個可以是個好習慣哦

1.2 txt寫入 不覆蓋寫入

? ? ? ? ? ? with open("d.txt", 'a',encoding='utf-8') as file:
? ? ? ? ? ? ? ? file.write('\n' + '摘要:' + gaiyao)
? ? ? ? ? ? ? ? file.write('\n')
? ? ? ? ? ? file.close()

1.3 各個文件標簽的含義 

訪問模式說明
r以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
w打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
a打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。
rb以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。
wb以二進制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
ab以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。
r+打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w+打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
a+打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
rb+以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
wb+以二進制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
ab+以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。

1.4 逐行讀取txt中所有內(nèi)容 

#coding=utf-8
f = open('11.txt', 'r')
content = f.readlines()
print(type(content))
i=1
for temp in content:
? ? print("%d:%s" % (i, temp))
? ? i += 1
f.close()

1.5 讀取txt中 前兩行的內(nèi)容 

#coding=utf-8
f = open('11.txt', 'r')
content = f.readline()
print("1:%s" % content)
content = f.readline()
print("2:%s" % content)
f.close()

1.6 文件拷貝

# 提示輸入文件
oldFileName = input("請輸入要拷貝的文件名字:")
# 以讀的方式打開文件
oldFile = open(oldFileName,'rb')
# 提取文件的后綴
fileFlagNum = oldFileName.rfind('.')
if fileFlagNum > 0:
? ? fileFlag = oldFileName[fileFlagNum:]
# 組織新的文件名字
newFileName = oldFileName[:fileFlagNum] + '[復件]' + fileFlag
# 創(chuàng)建新文件
newFile = open(newFileName, 'wb')
# 把舊文件中的數(shù)據(jù),一行一行的進行復制到新文件中
for lineContent in oldFile.readlines():
? ? newFile.write(lineContent)
# 關(guān)閉文件
oldFile.close()
newFile.close()

1.7 文件的相關(guān)操作

文件重命名

import os
os.rename("畢業(yè)論文.txt", "畢業(yè)論文-最終版.txt")

刪除文件

import os
os.remove("畢業(yè)論文.txt")

創(chuàng)建文件夾

import os
os.mkdir("張三")

獲取當前目錄

import os
os.getcwd()

改變默認目錄

import os
os.chdir("../")

獲取目錄列表

import os
os.listdir("./")

刪除文件夾

import os
os.rmdir("張三")

1.8 文件管理 - 學生管理系統(tǒng)

注:先創(chuàng)建一個文件:info_data.data

import time
import os
# 定一個列表,用來存儲所有的學生信息(每個學生是一個字典)
info_list = []
def print_menu():
? ? print("---------------------------")
? ? print(" ? ? ?學生管理系統(tǒng) V1.0")
? ? print(" 1:添加學生")
? ? print(" 2:刪除學生")
? ? print(" 3:修改學生")
? ? print(" 4:查詢學生")
? ? print(" 5:顯示所有學生")
? ? print(" 6:保存數(shù)據(jù)")
? ? print(" 7:退出系統(tǒng)")
? ? print("---------------------------")
def add_new_info():
? ? """添加學生信息"""
? ? global info_list
? ? new_name = input("請輸入姓名:")
? ? new_tel = input("請輸入手機號:")
? ? new_qq = input("請輸入QQ:")
? ? for temp_info in info_list:
? ? ? ? if temp_info['name'] == new_name:
? ? ? ? ? ? print("此用戶名已經(jīng)被占用,請重新輸入")
? ? ? ? ? ? return ?# 如果一個函數(shù)只有return就相當于讓函數(shù)結(jié)束,沒有返回值
? ? # 定義一個字典,用來存儲用戶的學生信息(這是一個字典)
? ? info = {}
? ? # 向字典中添加數(shù)據(jù)
? ? info["name"] = new_name
? ? info["tel"] = new_tel
? ? info["qq"] = new_qq
? ? # 向列表中添加這個字典
? ? info_list.append(info)
def del_info():
? ? """刪除學生信息"""
? ? global info_list
? ? del_num = int(input("請輸入要刪除的序號:"))
? ? if 0 <= del_num < len(info_list):
? ? ? ? del_flag = input("你確定要刪除么?yes or no")
? ? ? ? if del_flag == "yes":
? ? ? ? ? ? del info_list[del_num]
? ? else:
? ? ? ? print("輸入序號有誤,請重新輸入")
def modify_info():
? ? """修改學生信息"""
? ? global info_list
? ? modify_num = int(input("請輸入要修改的序號:"))
? ? if 0 <= modify_num < len(info_list):
? ? ? ? print("你要修改的信息是:")
? ? ? ? print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'],
? ? ? ? ? ? info_list[modify_num]['tel'],info_list[modify_num]['qq']))
? ? ? ? info_list[modify_num]['name'] = input("請輸入新的姓名:")
? ? ? ? info_list[modify_num]['tel'] = input("請輸入新的手機號:")
? ? ? ? info_list[modify_num]['qq'] = input("請輸入新QQ:")
? ? else:
? ? ? ? print("輸入序號有誤,請重新輸入")
def search_info():
? ? """查詢學生信息"""
? ? search_name = input("請輸入要查詢的學生姓名:")
? ? for temp_info in info_list:
? ? ? ? if temp_info['name'] == search_name:
? ? ? ? ? ? print("查詢到的信息如下:")
? ? ? ? ? ? print("name:%s, tel:%s, QQ:%s" % (temp_info['name'],
? ? ? ? ? ? ? ? temp_info['tel'], temp_info['qq']))
? ? ? ? ? ? break
? ? else:
? ? ? ? print("沒有您要找的信息....")
def print_all_info():
? ? """遍歷學生信息"""
? ? print("序號\t姓名\t\t手機號\t\tQQ")
? ? i = 0
? ? for temp in info_list:
? ? ? ? # temp是一個字典
? ? ? ? print("%d\t%s\t\t%s\t\t%s" % (i, temp['name'], temp['tel'], temp['qq']))
? ? ? ? i += 1
def save_data():
? ? """加載之前存儲的數(shù)據(jù)"""
? ? f = open("info_data.data", "w")
? ? f.write(str(info_list))
? ? f.close()
def load_data():
? ? """加載之前存儲的數(shù)據(jù)"""
? ? global info_list
? ? f = open("info_data.data")
? ? content = f.read()
? ? info_list = eval(content)
? ? f.close()
def main():
? ? """用來控制整個流程"""
? ? # 加載數(shù)據(jù)(1次即可)
? ? load_data()
? ? while True:
? ? ? ? # 1. 打印功能
? ? ? ? print_menu()
? ? ? ? # 2. 獲取用戶的選擇
? ? ? ? num = input("請輸入要進行的操作(數(shù)字):")
? ? ? ? # 3. 根據(jù)用戶選擇,做相應的事情
? ? ? ? if num == "1":
? ? ? ? ? ? # 添加學生
? ? ? ? ? ? add_new_info()
? ? ? ? elif num == "2":
? ? ? ? ? ? # 刪除學生
? ? ? ? ? ? del_info()
? ? ? ? elif num == "3":
? ? ? ? ? ? # 修改學生
? ? ? ? ? ? modify_info()
? ? ? ? elif num == "4":
? ? ? ? ? ? # 查詢學生
? ? ? ? ? ? search_info()
? ? ? ? elif num == "5":
? ? ? ? ? ? # 遍歷所有的信息
? ? ? ? ? ? print_all_info()
? ? ? ? elif num == "6":
? ? ? ? ? ? # 保存數(shù)據(jù)到文件中
? ? ? ? ? ? save_data()
? ? ? ? elif num == "7":
? ? ? ? ? ? # 退出系統(tǒng)
? ? ? ? ? ? exit_flag = input("親,你確定要退出么?~~~~(>_<)~~~~(yes or no) ")
? ? ? ? ? ? if exit_flag == "yes":
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print("輸入有誤,請重新輸入......")
? ? ? ? input("\n\n\n按回車鍵繼續(xù)....")
? ? ? ? os.system("clear") ?# 調(diào)用Linux命令clear完成清屏
# 程序的開始
main()

2、csv文件操作

2.1 csv寫入

with open('新1.csv', 'a', encoding='utf-8-sig', newline='') as f:
?? ?csv_writer = csv.writer(f, delimiter=',')
?? ?csv_writer.writerow(
?? ??? ?[str(name), str(zijin), str(guimo), str(jingli), str(phone1), str(phone2),str(chanpin)])

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Python的web框架中中編寫日志列表的教程

    在Python的web框架中中編寫日志列表的教程

    這篇文章主要介紹了在Python中編寫日志列表的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • 如何用python處理excel表格

    如何用python處理excel表格

    在本篇文章里小編給大家整理了關(guān)于python處理excel表格的詳細步驟內(nèi)容,需要的朋友們可以參考下。
    2020-06-06
  • python簡單驗證碼識別的實現(xiàn)方法

    python簡單驗證碼識別的實現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于python簡單驗證碼識別的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家學習或者使用python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • 安裝pytorch報錯torch.cuda.is_available()=false問題的解決過程

    安裝pytorch報錯torch.cuda.is_available()=false問題的解決過程

    最近想用pytorch,因此裝了pytorch,但是碰到了問題,下面這篇文章主要給大家介紹了關(guān)于安裝pytorch報錯torch.cuda.is_available()=false問題的解決過程,需要的朋友可以參考下
    2022-05-05
  • python中終止協(xié)程和異常處理方式

    python中終止協(xié)程和異常處理方式

    這篇文章主要介紹了python中終止協(xié)程和異常處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python  中的pass語句語法詳析

    Python  中的pass語句語法詳析

    這篇文章主要介紹了Python 中的pass語句語法詳析,pass是一種空操作(null operation),解釋器執(zhí)行到它的時候,除了檢查語法是否合法,什么也不做就直接跳過
    2022-07-07
  • 淺談python內(nèi)置函數(shù)callable的用法

    淺談python內(nèi)置函數(shù)callable的用法

    這篇文章主要介紹了淺談python內(nèi)置函數(shù)callable的用法, callable函數(shù)可用于判斷一個對象是否可以被調(diào)用,若對象可以被調(diào)用則返回True,反之則返回False,需要的朋友可以參考下
    2023-04-04
  • 一文帶你探索Python中15個常見的魔術(shù)方法

    一文帶你探索Python中15個常見的魔術(shù)方法

    在Python中,特殊方法(也稱為魔術(shù)方法)是由Python解釋器自動調(diào)用的,我們不需要手動調(diào)用它們,本文小編為大家整理了15個常見特殊方法的實現(xiàn),希望對大家有所幫助
    2024-01-01
  • Python實現(xiàn)的tab文件操作類分享

    Python實現(xiàn)的tab文件操作類分享

    這篇文章主要介紹了Python實現(xiàn)的tab文件操作類分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2014-11-11
  • Python把圖片轉(zhuǎn)化為pdf代碼實例

    Python把圖片轉(zhuǎn)化為pdf代碼實例

    這篇文章主要介紹了Python把圖片轉(zhuǎn)化為pdf代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論