日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

Python文件操作:高效處理文件的技巧

來源: 責編: 時間:2023-11-30 17:30:22 246觀看
導讀文件操作是日常工作中不可或缺的一部分。無論是讀取、寫入、拷貝還是移動文件,都需要高效的文件操作技巧。本文將帶領讀者深入探索文件操作的世界,并分享實用的技巧和工具。通過掌握這些技能,您將能夠更加輕松地管理和處

文件操作是日常工作中不可或缺的一部分。無論是讀取、寫入、拷貝還是移動文件,都需要高效的文件操作技巧。本文將帶領讀者深入探索文件操作的世界,并分享實用的技巧和工具。通過掌握這些技能,您將能夠更加輕松地管理和處理文件,提高工作效率和數據處理能力。EIy28資訊網——每日最新資訊28at.com

EIy28資訊網——每日最新資訊28at.com

一、文件讀寫操作

在學習文件操作之前,先來回顧一下編碼的相關以及數據類型的知識。EIy28資訊網——每日最新資訊28at.com

  • 字符串類型(str),在程序中用于表示文字信息,本質上是unicode編碼中的二進制。
name = "lisa"
  • 字節類型(bytes),可表示文字信息,本質上是utf-8/gbk等編碼的二進制(對unicode進行壓縮,方便文件存儲和網絡傳輸。)
name = "lisa"data = name.encode('utf-8')print(data) # b'/xe6/xad/xa6/xe6/xb2/x9b/xe9/xbd/x90'result = data.decode('utf-8')print(result) # "lisa"

可表示原始二進制(圖片、文件等信息)EIy28資訊網——每日最新資訊28at.com

1. 讀文件

讀文本文件:EIy28資訊網——每日最新資訊28at.com

# 1.打開文件file_object = open('info.txt', mode='rb')# 2.讀取文件內容,并賦值給datadata = file_object.read()# 3.關閉文件file_object.close()print(data) # b'jack-123/n/xe6/xad/xa6/xe6/xb2/x9b/xe9/xbd/x90-123'text = data.decode("utf-8")print(text)# 1.打開文件file_object = open('info.txt', mode='rt', encoding='utf-8')# 2.讀取文件內容,并賦值給datadata = file_object.read()# 3.關閉文件file_object.close()print(data) # "lisa"

讀圖片等非文本內容文件:EIy28資訊網——每日最新資訊28at.com

file_object = open('a1.png', mode='rb')data = file_object.read()file_object.close()print(data) # /x91/xf6/xf2/x83/x8aQFfv/x8b7/xcc/xed/xc3}/x7fT/x9d{.3./xf1{/xe8/...

注意文件路徑操作:EIy28資訊網——每日最新資訊28at.com

  • 相對路徑,你的程序到底在哪里運行的?
  • 絕對路徑
# 1.打開文件file_object = open('/Users/wupeiqi/PycharmProjects/luffyCourse/day09/info.txt', mode='rt', encoding='utf-8')# 2.讀取文件內容,并賦值給datadata = file_object.read()# 3.關閉文件file_object.close()    windows系統中寫絕對路徑容易出問題:# file_object = open('C://new//info.txt', mode='rt', encoding='utf-8')file_object = open(r'C:/new/info.txt', mode='rt', encoding='utf-8')data = file_object.read()file_object.close()print(data)

讀文件時,文件不存在程序會報錯:EIy28資訊網——每日最新資訊28at.com

Traceback (most recent call last):  File "/Users/wupeiqi/PycharmProjects/luffyCourse/day09/2.讀文件.py", line 2, in <module>    file_object = open('infower.txt', mode='rt', encoding='utf-8')FileNotFoundError: [Errno 2] No such file or directory: 'infower.txt'# 判斷路徑是否存在?import osfile_path = "/Users/wupeiqi/PycharmProjects/luffyCourse/day09/info.txt"exists = os.path.exists(file_path)if exists:    # 1.打開文件    file_object = open('infower.txt', mode='rt', encoding='utf-8')    # 2.讀取文件內容,并賦值給data    data = file_object.read()    # 3.關閉文件    file_object.close()    print(data)else:    print("文件不存在")

2. 寫文件

寫文本文件:EIy28資訊網——每日最新資訊28at.com

# 1.打開文件# 路徑:t1.txt# 模式:wb(要求寫入的內容需要是字節類型)file_object = open("t1.txt", mode='wb')# 2.寫入內容file_object.write(    "lisa".encode("utf-8")    )# 3.文件關閉file_object.close()file_object = open("t1.txt", mode='wt', encoding='utf-8')file_object.write("lisa")file_object.close()

寫圖片等文件:EIy28資訊網——每日最新資訊28at.com

f1 = open('a1.png',mode='rb')content = f1.read()f1.close()f2 = open('a2.png',mode='wb')f2.write(content)f2.close()

小案例:利用Python向某個網址發送請求并獲取結果(利用第三方的模塊)。EIy28資訊網——每日最新資訊28at.com

下載第三方模塊:EIy28資訊網——每日最新資訊28at.com

pip install requests

使用第三方模塊:EIy28資訊網——每日最新資訊28at.com

import requestsres = requests.get(url="網址")print(res)# 案例1:去網上下載一點文本,文本信息寫入文件。import requestsres = requests.get(    url="https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=recommend&page_limit=20&page_start=20",    headers={        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"    })# 網絡傳輸的原始二進制信息(bytes)# res.contentfile_object = open('files/log1.txt', mode='wb')file_object.write(res.content)file_object.close()

案例2:去網上下載一張圖片,圖片寫入本地文件。EIy28資訊網——每日最新資訊28at.com

import requestsres = requests.get(    url="https://hbimg.huabanimg.com/c7e1461e4b15735fbe625c4dc85bd19904d96daf6de9fb-tosv1r_fw1200",    headers={        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"    })# 網絡傳輸的原始二進制信息(bytes)# res.contentfile_object = open('files/美女.png', mode='wb')file_object.write(res.content)file_object.close()

注意事項:EIy28資訊網——每日最新資訊28at.com

(1)路徑EIy28資訊網——每日最新資訊28at.com

  • 絕對路徑
  • 相對路徑

(2)文件不存在時,w模式會新建然后再寫入內容;文件存在時,w模式會清空文件再寫入內容。EIy28資訊網——每日最新資訊28at.com

二、文件打開模式

上文我們基于文件操作基本實現了讀、寫的功能,其中涉及的文件操作模式:rt、rb、wt、wb,其實在文件操作中還有其他的很多模式。EIy28資訊網——每日最新資訊28at.com

========= ===============================================================Character Meaning--------- ---------------------------------------------------------------'r'       open for reading (default)'w'       open for writing, truncating the file first'x'       create a new file and open it for writing'a'       open for writing, appending to the end of the file if it exists'b'       binary mode't'       text mode (default)'+'       open a disk file for updating (reading and writing)The default mode is 'rt' (open for reading text).

關于文件的打開模式常見應用有:EIy28資訊網——每日最新資訊28at.com

只讀:r,rt,rbEIy28資訊網——每日最新資訊28at.com

EIy28資訊網——每日最新資訊28at.com

  • 存在,讀
  • 不存在,報錯

只寫:w,wt,wbEIy28資訊網——每日最新資訊28at.com

  • 存在,清空再寫
  • 不存在,創建再寫

只寫:a,at,ab (常用于【尾部追加】)EIy28資訊網——每日最新資訊28at.com

  • 存在,尾部追加。
  • 不存在,創建再寫。

三、常見功能

在上述對文件的操作中,我們只使用了write和read來對文件進行讀寫,其實在文件操作中還有很多其他的功能來輔助實現更好的讀寫文件的內容。EIy28資訊網——每日最新資訊28at.com

read,讀EIy28資訊網——每日最新資訊28at.com

讀所有【常用】:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='r',encoding='utf-8')data = f.read()f.close()f = open('info.txt', mode='rb')data = f.read()f.close()- 讀n個字符(字節)【會用到】f = open('info.txt', mode='r', encoding='utf-8')# 讀1個字符data = f.read(1)f.close()print(data) # 武f = open('info.txt', mode='r',encoding='utf-8')# 讀1個字符chunk1 = f.read(1)chunk2 = f.read(2)print(chunk1,chunk2)f.close()f = open('info.txt', mode='rb')# 讀1個字節data = f.read(3)f.close()print(data, type(data))  # b'/xe6/xad/xa6' <class 'bytes'>f = open('info.txt', mode='rb')# 讀1個字節chunk1 = f.read(3)chunk2 = f.read(3)chunk3 = f.read(1)print(chunk1,chunk2,chunk3)f.close()

EIy28資訊網——每日最新資訊28at.com

readline,讀一行:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='r', encoding='utf-8')v1 = f.readline()print(v1)v2 = f.readline()print(v2)f.close()f = open('info.txt', mode='r', encoding='utf-8')v1 = f.readline()print(v1)f.close()f = open('info.txt', mode='r', encoding='utf-8')v2 = f.readline()print(v2)f.close()

EIy28資訊網——每日最新資訊28at.com

readlines,讀所有行,每行作為列表的一個元素:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='rb')data_list = f.readlines()f.close()print(data_list)

EIy28資訊網——每日最新資訊28at.com

循環,讀大文件(readline加強版)【常見】:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='r', encoding='utf-8')for line in f:    print(line.strip())f.close()

EIy28資訊網——每日最新資訊28at.com

write,寫:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='a',encoding='utf-8')f.write("lisa")f.close()f = open('info.txt', mode='ab')f.write( "lisa".encode("utf-8") )f.close()

EIy28資訊網——每日最新資訊28at.com

flush,刷到硬盤:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='a',encoding='utf-8')while True:    # 不是寫到了硬盤,而是寫在緩沖區,系統會將緩沖區的內容刷到硬盤。  f.write("lisa")    f.flush()f.close()file_object = open('files/account.txt', mode='a')while True:    user = input("用戶名:")    if user.upper() == "Q":        break    pwd = input("密碼:")    data = "{}-{}/n".format(user, pwd)    file_object.write(data)    file_object.flush()file_object.close()

EIy28資訊網——每日最新資訊28at.com

移動光標位置(字節):EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='r+', encoding='utf-8')# 移動到指定字節的位置f.seek(3)f.write("lisa")f.close()注意:在a模式下,調用write在文件中寫入內容時,永遠只能將內容寫入到尾部,不會寫到光標的位置。

EIy28資訊網——每日最新資訊28at.com

獲取當前光標位置:EIy28資訊網——每日最新資訊28at.com

f = open('info.txt', mode='r', encoding='utf-8')p1 = f.tell()print(p1)  # 0f.read(3)  # 讀3個字符 3*3=9字節p2 = f.tell()print(p2)  # 9f.close()f = open('info.txt', mode='rb')p1 = f.tell()print(p1)  # 0f.read(3)  # 讀3個字節p2 = f.tell()print(p2)  # 3f.close()

EIy28資訊網——每日最新資訊28at.com

四、上下文管理

之前對文件進行操作時,每次都要打開和關閉文件,比較繁瑣且容易忘記關閉文件。以后再進行文件操作時,推薦大家使用with上下文管理,它可以自動實現關閉文件。EIy28資訊網——每日最新資訊28at.com

with open("xxxx.txt", mode='rb') as file_object:    data = file_object.read()    print(data)

在Python 2.7 后,with又支持同時對多個文件的上下文進行管理,即:EIy28資訊網——每日最新資訊28at.com

with open("xxxx.txt", mode='rb') as f1, open("xxxx.txt", mode='rb') as f2:    pass

五、文件修改

文件操作改的流程如下所示:EIy28資訊網——每日最新資訊28at.com

  • 以讀的模式打開原文件。
  • 以寫的模式創建一個新文件。
  • 將原文件的內容讀出來修改成新內容,寫入新文件。
  • 將原文件刪除。
  • 將新文件重命名成原文件。
import os# 1, 以讀的模式打開原文件。# 2,以寫的模式創建一個新文件。with open('jack自述',encoding='utf-8') as f1,/  open('jack自述.bak',encoding='utf-8',mode='w') as f2:# 3,將原文件的內容讀出來修改成新內容,寫入新文件。  old_content = f1.read()  new_content = old_content.replace('jack', 'SB')  f2.write(new_content)os.remove('jack自述')os.rename('jack自述.bak','jack自述')

六、面試題

文件操作,大文件如何讀取內容 [ 50G的日志文件 ]:EIy28資訊網——每日最新資訊28at.com

def read_large_file(file_path, chunk_size=4096):    with open(file_path, 'r') as file:        while True:            data = file.read(chunk_size)            if not data:                break            yield data# 使用示例for chunk in read_large_file('large_log_file.log'):    # 處理每個塊的數據    process_chunk(chunk)

在Python的文件操作中,readline()和readlines()是用于讀取文件內容的兩種常見方法,有什么區別?EIy28資訊網——每日最新資訊28at.com

  • readline()方法用于每次讀取文件的一行內容,并將光標移動到下一行。每次調用readline(),它會返回文件中的下一行文本作為字符串。如果文件結束,readline()會返回空字符串。
  • readlines()方法則會一次性讀取整個文件的所有行,并將每一行作為一個字符串存儲在一個列表中。該方法返回一個包含所有行的列表。

區別:EIy28資訊網——每日最新資訊28at.com

  • 返回類型:readline()方法返回一個字符串,即一行的文本內容。readlines()方法返回一個列表,其中每個元素是一個字符串,即每行的文本內容。
  • 讀取方式:readline()方法按行順序逐個讀取,每次調用讀取一行。而readlines()方法一次讀取整個文件,并將每行作為一個字符串保存在列表中。
  • 內存占用:readlines()方法將整個文件內容存儲在內存中的列表中,可能會占用較多的內存。而readline()方法只加載一行內容,所以對內存的占用更加有限。

以下是示例代碼來展示readline()和readlines()的使用:EIy28資訊網——每日最新資訊28at.com

# 使用readline()方法逐行讀取文件with open('file.txt', 'r') as file:    line = file.readline()    while line:        print(line)        line = file.readline()# 使用readlines()方法讀取所有行with open('file.txt', 'r') as file:    lines = file.readlines()    for line in lines:        print(line)

上述代碼中,假設有一個名為file.txt的文本文件。EIy28資訊網——每日最新資訊28at.com

  • 第一個示例使用readline()方法逐行讀取文件內容并打印,直到文件結束。
  • 第二個示例使用readlines()方法一次性讀取整個文件的所有行,并使用for循環逐行打印。

需要注意的是,在以上示例中,為了演示目的,我們使用with open語句來打開文件,這樣可以自動關閉文件句柄,確保文件操作的正確性和安全性。EIy28資訊網——每日最新資訊28at.com

七、文件路徑和目錄操作

在python中有一些專門的模塊去操作文件路徑與目錄:EIy28資訊網——每日最新資訊28at.com

例如os模塊:EIy28資訊網——每日最新資訊28at.com

1. os

首先導入:EIy28資訊網——每日最新資訊28at.com

import os

EIy28資訊網——每日最新資訊28at.com

獲取當前腳本絕對路徑:EIy28資訊網——每日最新資訊28at.com

import osabs_path = os.path.abspath(__file__)print(abs_path)

EIy28資訊網——每日最新資訊28at.com

獲取當前文件的上級目錄:EIy28資訊網——每日最新資訊28at.com

import osbase_path = os.path.dirname( os.path.dirname(路徑) )print(base_path)

EIy28資訊網——每日最新資訊28at.com

路徑拼接:EIy28資訊網——每日最新資訊28at.com

import osp1 = os.path.join(base_path, 'xx')print(p1)p2 = os.path.join(base_path, 'xx', 'oo', 'a1.png')print(p2)

EIy28資訊網——每日最新資訊28at.com

判斷路徑是否存在:EIy28資訊網——每日最新資訊28at.com

import osexists = os.path.exists(p1)print(exists)

-創建文件夾:EIy28資訊網——每日最新資訊28at.com

import osos.makedirs(路徑)path = os.path.join(base_path, 'xx', 'oo', 'uuuu')if not os.path.exists(path):    os.makedirs(path)

EIy28資訊網——每日最新資訊28at.com

是否是文件夾:EIy28資訊網——每日最新資訊28at.com

import osfile_path = os.path.join(base_path, 'xx', 'oo', 'uuuu.png')is_dir = os.path.isdir(file_path)print(is_dir) # Falsefolder_path = os.path.join(base_path, 'xx', 'oo', 'uuuu')is_dir = os.path.isdir(folder_path)print(is_dir) # True

EIy28資訊網——每日最新資訊28at.com

刪除文件或文件夾:EIy28資訊網——每日最新資訊28at.com

os.remove("文件路徑")path = os.path.join(base_path, 'xx')shutil.rmtree(path)

除了路徑操作之外,再給出一些稍微常見的函數,如下所示:EIy28資訊網——每日最新資訊28at.com

2. os.listdir

listdir,查看目錄下所有的文件   查看一個目錄下所有的文件【第一層】EIy28資訊網——每日最新資訊28at.com

使用Python代碼實現遍歷一個文件夾的操作。EIy28資訊網——每日最新資訊28at.com

import osdef print_directory_contents(sPath):    """    這個函數接收文件夾的名稱作為輸入參數    返回該文件夾中文件的路徑    以及其包含文件夾中文件的路徑    """    for s_child in os.listdir(sPath):        s_child_path = os.path.join(sPath, s_child)        if os.path.isdir(s_child_path):             # 如果是文件夾,走遞歸操作            print_directory_contents(s_child_path)        else:            # 就一定是文件            print(s_child_path)target_path = 'xxxx'print_directory_contents(target_path)

EIy28資訊網——每日最新資訊28at.com

使用listdir求文件夾的大小:EIy28資訊網——每日最新資訊28at.com

import oslst = [r'D:/code']size = 0while lst:    path = lst.pop()    name_lst = os.listdir(path)    for name in name_lst:        full_path = os.path.join(path,name)        if os.path.isdir(full_path):            lst.append(full_path)        elif os.path.isfile(full_path):            size += os.path.getsize(full_path)print(size)

3. os.walk

Python標準庫os模塊的walk函數提供了遍歷一個文件夾的功能,它返回一個生成器。walk,查看目錄下所有的文件(含子孫文件)EIy28資訊網——每日最新資訊28at.com

import os"""data = os.listdir("/Users/jack/PycharmProjects/luffyCourse/day14/commons")print(data)# ['convert.py', '__init__.py', 'page.py', '__pycache__', 'utils.py', 'tencent']""""""要遍歷一個文件夾下的所有文件,例如:遍歷文件夾下的所有mp4文件"""data = os.walk("/Users/jack/Documents/視頻教程/路飛Python/mp4")for path, folder_list, file_list in data:    for file_name in file_list:        file_abs_path = os.path.join(path, file_name)        ext = file_abs_path.rsplit(".",1)[-1]        if ext == "mp4":            print(file_abs_path)

EIy28資訊網——每日最新資訊28at.com

使用walk來計算文件夾的總大小:EIy28資訊網——每日最新資訊28at.com

import osg = os.walk('D:/軟件')s=0for i in g :    path,dir_list,name_list = i    for j in name_list:        s+=os.path.getsize(os.path.join(path,j))print(f'該文件夾大小為:{s/1024**2}MB')

EIy28資訊網——每日最新資訊28at.com

八、shutil

shutil庫是Python的一個標準高級文件操作模塊,它與os模塊形成互補的關系。os模塊主要提供了對文件或文件夾的新建、刪除、查看等基本操作,還支持對文件以及目錄的路徑操作。然而,對于復制、移動、刪除、壓縮、解壓等復雜操作,os模塊一般不提供,這時候就需要用到shutil庫了。EIy28資訊網——每日最新資訊28at.com

shutil庫中包含了一些實用的函數,如copy(), move(), rmtree()等,這些函數可以幫助我們進行文件和文件夾的復制、移動和刪除等操作。例如,我們可以使用shutil.copy()函數來復制文件,只需要指定源文件路徑和目標文件路徑即可。此外,shutil庫還提供了一些其他的實用函數,如make_archive()函數,它可以幫助我們將多個文件或文件夾打包成一個歸檔文件。由于對比于os模塊,使用的沒有那么頻繁,所以這里對于shutil的使用稍微簡化,感興趣可以查看官方文檔。EIy28資訊網——每日最新資訊28at.com

同樣的首先導入:EIy28資訊網——每日最新資訊28at.com

import shutil

EIy28資訊網——每日最新資訊28at.com

刪除文件夾:EIy28資訊網——每日最新資訊28at.com

path = os.path.join(base_path, 'xx')shutil.rmtree(path)

EIy28資訊網——每日最新資訊28at.com

拷貝文件夾:EIy28資訊網——每日最新資訊28at.com

shutil.copytree("/Users/jack/Desktop/圖/csdn/","/Users/jack/PycharmProjects/CodeRepository/files")

EIy28資訊網——每日最新資訊28at.com

拷貝文件::EIy28資訊網——每日最新資訊28at.com

shutil.copy("/Users/jack/Desktop/圖/csdn/WX20201123-112406@2x.png","/Users/jack/PycharmProjects/CodeRepository/")shutil.copy("/Users/jack/Desktop/圖/csdn/WX20201123-112406@2x.png","/Users/jack/PycharmProjects/CodeRepository/x.png")

EIy28資訊網——每日最新資訊28at.com

文件或文件夾重命名:EIy28資訊網——每日最新資訊28at.com

shutil.move("/Users/jack/PycharmProjects/CodeRepository/x.png","/Users/jack/PycharmProjects/CodeRepository/xxxx.png")shutil.move("/Users/jack/PycharmProjects/CodeRepository/files","/Users/jack/PycharmProjects/CodeRepository/images")

EIy28資訊網——每日最新資訊28at.com

文件壓縮:EIy28資訊網——每日最新資訊28at.com

"""# base_name,壓縮后的壓縮包文件# format,壓縮的格式,例如:"zip", "tar", "gztar", "bztar", or "xztar".# root_dir,要壓縮的文件夾路徑"""# shutil.make_archive(base_name=r'datafile',format='zip',root_dir=r'files')

EIy28資訊網——每日最新資訊28at.com

解壓文件:EIy28資訊網——每日最新資訊28at.com

"""# filename,要解壓的壓縮包文件# extract_dir,解壓的路徑# format,壓縮文件格式"""# shutil.unpack_archive(filename=r'datafile.zip', extract_dir=r'xxxxxx/xo', format='zip')

九、文件路徑相關

在Python中進行文件操作時,路徑同樣非常重要。正確的路徑可以確保程序能夠找到需要讀寫的文件,并且避免覆蓋或刪除錯誤的文件。在使用Python進行文件操作時,可以使用絕對路徑或相對路徑來指定文件的位置。絕對路徑是從根目錄開始的完整路徑,而相對路徑則是相對于當前工作目錄的路徑。因此,在進行文件操作之前,必須先確定文件的路徑,并使用合適的方法打開和關閉文件,以確保數據的正確讀寫和安全性。EIy28資訊網——每日最新資訊28at.com

1.  轉義

windows路徑使用的是/,linux路徑使用的是/。EIy28資訊網——每日最新資訊28at.com

特別的,在windows系統中如果有這樣的一個路徑 D:/nxxx/txxx/x1,程序會報錯。因為在路徑中存在特殊符 /n(換行符)和/t(制表符),Python解釋器無法自動區分。EIy28資訊網——每日最新資訊28at.com

所以,在windows中編寫路徑時,一般有兩種方式:EIy28資訊網——每日最新資訊28at.com

  • 加轉義符,例如:"D://nxxx//txxx//x1"
  • 路徑前加r,例如:r"D://nxxx//txxx//x1"

2. 程序當前路徑

項目中如果使用了相對路徑,那么一定要注意當前所在的位置。EIy28資訊網——每日最新資訊28at.com

例如:在/Users/jack/PycharmProjects/CodeRepository/路徑下編寫 demo.py文件:EIy28資訊網——每日最新資訊28at.com

with open("a1.txt", mode='w', encoding='utf-8') as f:    f.write("你好呀")

EIy28資訊網——每日最新資訊28at.com

用以下兩種方式去運行:EIy28資訊網——每日最新資訊28at.com

  • 方式1,文件會創建在 /Users/jack/PycharmProjects/CodeRepository/ 目錄下。
cd /Users/jack/PycharmProjects/CodeRepository/python demo.py
  • 方式2,文件會創建在 `/Users/jack`目錄下。
cd /Users/jackpython /Users/jack/PycharmProjects/CodeRepository/demo.pyimport os"""# 1.獲取當前運行的py腳本所在路徑abs = os.path.abspath(__file__)print(abs) # /Users/jack/PycharmProjects/luffyCourse/day09/20.路徑相關.pypath = os.path.dirname(abs)print(path) # /Users/jack/PycharmProjects/luffyCourse/day09"""base_dir = os.path.dirname(os.path.abspath(__file__))file_path = os.path.join(base_dir, 'files', 'info.txt')print(file_path)if os.path.exists(file_path):    file_object = open(file_path, mode='r', encoding='utf-8')    data = file_object.read()    file_object.close()    print(data)else:    print('文件路徑不存在')

總結

文件操作是每個開發者和數據處理人員必備的技能。在本文中,我們詳細介紹了文件讀寫、路徑和目錄操作、文件拷貝以及文件批量處理等方面的技巧和工具。通過學習和應用這些技能,您將能夠更加靈活地處理和管理文件,提高工作效率。要記住,好的文件操作習慣對于數據處理和項目管理至關重要。繼續探索并不斷實踐,您將成為一個更加優秀的文件操作專家!EIy28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-35553-0.htmlPython文件操作:高效處理文件的技巧

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 極氪汽車回應暫緩 IPO:上市工作正有序推進

下一篇: Pandas中選擇和過濾數據的終極指南

標簽:
  • 熱門焦點
  • 摸魚心法第一章——和配置文件說拜拜

    為了能摸魚我們團隊做了容器化,但是帶來的問題是服務配置文件很麻煩,然后大家在群里進行了“親切友好”的溝通圖片圖片圖片圖片對比就對比,簡單對比下獨立配置中心和k8s作為配
  • K8S | Service服務發現

    一、背景在微服務架構中,這里以開發環境「Dev」為基礎來描述,在K8S集群中通常會開放:路由網關、注冊中心、配置中心等相關服務,可以被集群外部訪問;圖片對于測試「Tes」環境或者
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • JavaScript學習 -AES加密算法

    引言在當今數字化時代,前端應用程序扮演著重要角色,用戶的敏感數據經常在前端進行加密和解密操作。然而,這樣的操作在網絡傳輸和存儲中可能會受到惡意攻擊的威脅。為了確保數據
  • 使用Webdriver-manager解決瀏覽器與驅動不匹配所帶來自動化無法執行的問題

    1、前言在我們使用 Selenium 進行 UI 自動化測試時,常常會因為瀏覽器驅動與瀏覽器版本不匹配,而導致自動化測試無法執行,需要手動去下載對應的驅動版本,并替換原有的驅動,可能還
  • 三分鐘白話RocketMQ系列—— 如何發送消息

    我們知道RocketMQ主要分為消息 生產、存儲(消息堆積)、消費 三大塊領域。那接下來,我們白話一下,RocketMQ是如何發送消息的,揭秘消息生產全過程。注意,如果白話中不小心提到相關代
  • 新電商三兄弟,“抖快紅”成團!

    來源:價值研究所作 者:Hernanderz 隨著內容電商的概念興起,抖音、快手、小紅書組成的&ldquo;新電商三兄弟&rdquo;成為業內一股不可忽視的勢力,給阿里、京東、拼多多帶去了巨大壓
  • 年輕人的“職場羞恥感”,無處不在

    作者:馮曉亭 陶 淘 李 欣 張 琳 馬舒葉來源:燃次元&ldquo;人在職場,應該選擇什么樣的著裝?&rdquo;近日,在網絡上,一個與著裝相關的帖子引發關注,在該帖子里,一位在高級寫字樓亞洲金
  • iQOO Neo8 Pro真機諜照曝光:天璣9200+和V1+旗艦雙芯加持

    去年10月,iQOO推出了iQOO Neo7系列機型,不僅搭載了天璣9000+,而且是同價位唯一一款天璣9000+直屏旗艦,一經上市便受到了用戶的廣泛關注。在時隔半年后,
Top 主站蜘蛛池模板: 张家口市| 武定县| 新河县| 房产| 河津市| 醴陵市| 荥经县| 枣庄市| 凭祥市| 台北市| 邹城市| 邵东县| 广南县| 钦州市| 大英县| 中西区| 澎湖县| 卓资县| 张家口市| 旬邑县| 涿州市| 扶风县| 金坛市| 东至县| 饶阳县| SHOW| 桓仁| 崇礼县| 景宁| 宁乡县| 商丘市| 鸡泽县| 牡丹江市| 长春市| 永城市| 元江| 博客| 广水市| 长泰县| 清徐县| 阿瓦提县|