Pythonファイル操作API
Pythonでのファイルやフォルダーの操作(ファイル操作関数)には、osモジュールとshutilモジュールが必要です。
現在の作業ディレクトリ、つまり現在のPythonスクリプトが動作するディレクトリパスを取得します: os.getcwd()
指定されたディレクトリ内のすべてのファイルとディレクトリ名を返します: os.listdir()
関数が使用されますファイルを削除する: os.remove()
複数のディレクトリを削除する: os.removedirs(r "c:python")
指定されたパスがファイルであるかどうかを確認する: os.path.isfile()
指定されたパスがファイルであるかどうかを確認するディレクトリ: os .path.isdir()
それが絶対パスであるかどうかを判断します: os.path.isabs()
指定されたパスが実際に存在するかどうかを確認します: os.path.exists()
ディレクトリ名とファイル名を返しますパスの: os.path.split() 例: os.path.split('/home/swaroop/byte/code/poem.txt') 結果: ('/home/swaroop/byte/code', 'poem. txt')
分割拡張子名: os.path.splitext()
パス名を取得: os.path.dirname()
ファイル名を取得: os.path.basename()
シェルコマンドを実行: os.system()
環境変数を読み取って設定します:os.getenv() および os.putenv()
は、現在のプラットフォームで使用される行終端記号を与えます: os.linesep Windows は 'rn'、Linux は 'n'、Mac は 'r' を使用します
使用しているプラットフォーム:os.name Windows の場合は 'nt'、Linux/Unix ユーザーの場合は 'posix'
名前の変更: os.rename(old, new)
マルチレベルのディレクトリの作成: os.makedirs(r "c :pythontest")
単一のディレクトリを作成します: os.mkdir("test")
ファイル属性を取得します: os.stat(file)
ファイルのアクセス許可とタイムスタンプを変更します: os.chmod(file)
現在のプロセスを終了します: os.exit ()
ファイルサイズの取得: os.path.getsize(filename)
ファイル操作:
os.mknod("test.txt")オフ ファイルを開き、ファイルが存在しない場合は作成します
オープンモードについて:
w 書き込みモードで開きます、a 追加モードで開きます (EOF から開始し、必要に応じて新しいファイルを作成します)
r+ 読み書きモードで開きます
w+ 読み書きモードで開きますモード ( w を参照)
a+ 読み取り/書き込みモードでオープン ( a を参照)
rb バイナリ読み取りモードでオープン
wb バイナリ書き込みモードでオープン ( w を参照)
ab バイナリ追加モードでオープン ( a a を参照)
rb+ オープンバイナリ読み書きモードで開きます ( r+ を参照)
wb+ バイナリ読み書きモードで開きます ( w+ を参照)
ab+ バイナリ読み書きモードで開きます ( a+ を参照)
(Fp.read ([size]) #Size は読み取りの長さ、単位はバイト
fp.readline ([size]) #1 行を読み取ります。サイズが定義されている場合は、
の行の一部のみを読み取りますfp.readlines([size]) # ファイルの各行をリストのメンバーとして扱い、このリストを返します。実際、これはループ内で readline() を呼び出すことによって内部的に実装されます。 size パラメータが指定されている場合、size は読み取られるコンテンツの全長を表します。これは、ファイルの一部のみが読み取られることを意味します。
fp.write(str) #str をファイルに書き込みます。write() は str の性的な書き込みの後に改行文字を追加しません)。この関数も、各行の後に何も追加せずに、忠実に記述するだけです。
fp.close() Python は、使用されなくなったファイルを自動的に閉じますが、この機能は保証されていません。自分でファイルを閉じる習慣を身に付けることをお勧めします。ファイルが閉じた後に操作されると、valulerorが発生します。ファイルが for...in file などのステートメントで使用される場合、トラバーサルを実装するために next() 関数が呼び出されます。
fp.seek(offset[,whence]) #ファイル操作マークをオフセット位置に移動します。このオフセットは通常、ファイルの先頭を基準にして計算され、通常は正の数になります。ただし、whence パラメーターが指定されている場合は、この限りではありません。whence を 0 にすると最初から計算を開始し、1 を指定すると現在の位置を原点として使用できます。 2はファイルの末尾を起点として計算することを示します。ファイルを a または a+ モードで開いた場合、書き込み操作が実行されるたびに、ファイル操作マークは自動的にファイルの最後に戻ることに注意してください。 NFp.truncate ([SIZE]) #
現在のファイル操作マークの位置までファイルのサイズを切り詰めます。サイズがファイル サイズより大きい場合、システムによっては、ファイルが変更されないか、対応するサイズまでファイルが 0 でパディングされるか、ランダムなコンテンツが追加されることがあります。
目录操作:
os.mkdir("file") 创建目录
复制文件:
shutil.copyfile("oldfile","newfile") oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
复制文件夹:
shutil.copytree("olddir","newdir") olddir和newdir都只能是目录,且newdir必须不存在
重命名文件(目录)
os.rename("oldname","newname") 文件或目录都是使用这条命令
移动文件(目录)
shutil.move("oldpos","newpos")
删除文件
os.remove("file")
删除目录
os.rmdir("dir")只能删除空目录
shutil.rmtree("dir") 空目录、有内容的目录都可以删
转换目录
os.chdir("path") 换路径
相关例子
1 将文件夹下所有图片名称加上'_fc'
python代码:
# -*- coding:utf-8 -*- import re import os import time #str.split(string)分割字符串 #'连接符'.join(list) 将列表组成字符串 def change_name(path): global i if not os.path.isdir(path) and not os.path.isfile(path): return False if os.path.isfile(path): file_path = os.path.split(path) #分割出目录与文件 lists = file_path[1].split('.') #分割出文件与文件扩展名 file_ext = lists[-1] #取出后缀名(列表切片操作) img_ext = ['bmp','jpeg','gif','psd','png','jpg'] if file_ext in img_ext: os.rename(path,file_path[0]+'/'+lists[0]+'_fc.'+file_ext) i+=1 #注意这里的i是一个陷阱 #或者 #img_ext = 'bmp|jpeg|gif|psd|png|jpg' #if file_ext in img_ext: # print('ok---'+file_ext) elif os.path.isdir(path): for x in os.listdir(path): change_name(os.path.join(path,x)) #os.path.join()在路径处理上很有用 img_dir = 'D:\\xx\\xx\\images' img_dir = img_dir.replace('\\','/') start = time.time() i = 0 change_name(img_dir) c = time.time() - start print('程序运行耗时:%0.2f'%(c)) print('总共处理了 %s 张图片'%(i))
输出结果:
程序运行耗时:0.11
总共处理了 109 张图片
Python常见文件操作示例
os.path 模块中的路径名访问函数
分隔
basename() 去掉目录路径, 返回文件名
dirname() 去掉文件名, 返回目录路径
join() 将分离的各部分组合成一个路径名
split() 返回 (dirname(), basename()) 元组
splitdrive() 返回 (drivename, pathname) 元组
splitext() 返回 (filename, extension) 元组
信息
getatime() 返回最近访问时间
getctime() 返回文件创建时间
getmtime() 返回最近文件修改时间
getsize() 返回文件大小(以字节为单位)
クエリ
exists() 指定したパス(ファイルまたはディレクトリ)が存在するかどうかを指定
isabs() パスが絶対パスかどうかを指定
isdir() パスが存在し、ディレクトリであるかどうかを指定
isfile()パスが存在し、ファイルであるかどうかを指定します
islink() は、パスが存在し、シンボリックリンクであるかどうかを指定します
ismount() は、パスが存在し、マウントポイントであるかどうかを指定します
Samefile() 2 つのパス名が同じものを指しているかどうかを指定しますfile
os.path.isdir(name): name がディレクトリであるかどうかを判断します。 name がディレクトリでない場合は、false を返します。存在する場合、false を返します。 os.path.exists(name): ファイルが存在するかどうかを判断します。 または、ディレクトリ名
os.path.getsize(name): ファイルのサイズを取得します。name がディレクトリの場合は、0L
os を返します。 path.abspath(name): 絶対パスを取得します
os.path.normpath(path): パス文字列を正規化します 形式
os.path.split(name): ファイル名とディレクトリを分割します (実際、ディレクトリ全体を分割する場合、最後のディレクトリもファイル名として分割され、ファイルまたはディレクトリが存在するかどうかは判断されません)
os.path.splitext(): ファイル名と拡張子を分割します
os.path.join(path ,name): ファイル名またはディレクトリでディレクトリを結合します
os.path.basename(path): ファイル名を返します
path.dirname(path): ファイルのパスを返します
ファイルパスを区切る文字列。
curdir 現在の作業ディレクトリの文字列名
pardir (現在の作業ディレクトリの親ディレクトリの文字列名
1. 名前変更: os.rename(old, new) 2削除: os.remove(file)
3ディレクトリ内のファイルを一覧表示します: os.listdir(path)
4. 現在の作業ディレクトリを取得します: os.getcwd()
5. 作業ディレクトリを変更します: os.chdir(newdir)
6 .複数レベルのディレクトリを作成します: os.makedirs(r"c:pythontest")
7. 単一のディレクトリを作成します: os.mkdir("test")
8. 複数のディレクトリを削除します: os.removedirs(r"c:python" ) #空のものをすべて削除します指定されたパスの最後のディレクトリの下にあるディレクトリ。
9. 単一のディレクトリを削除します: os.rmdir("test")
10. ファイル属性を取得します: os.stat(file)
11. ファイルのアクセス許可とタイムスタンプを変更します: os.chmod(file)
12. オペレーティング・システムを実行しますsystem コマンド: os.system("dir")
13. 新しいプロセスを開始します: os.exec()、os.execvp()
14. バックグラウンドでプログラムを実行します: osspawnv()
15. 現在のプロセスを終了します: os.exit( ), os._exit()
16. 分割ファイル名: os.path.split(r"c:pythonhello.py") --> ("c:\python", "hello.py") ")
17. 分割拡張子: os.path.splitext(r"c:pythonhello.py") --> ("c:\python\hello", ".py")
18. パス名を取得します。 os.path.dirname (r"c:pythonhello.py") --> "c:\python"
19. ファイル名を取得します: os.path.basename(r"r:pythonhello.py") -- > "hello.py "
20. ファイルが存在するかどうかを確認します: os.path.exists(r"c:pythonhello.py") --> True
21. ファイルが絶対パスであるかどうかを確認します: os.path .isabs(r".python") --> False
22. ディレクトリであるかどうかを判断します: os.path.isdir(r"c:python") --> True
23.ファイル: os.path.isfile(r"c:pythonhello .py") --> True
24. リンク ファイルかどうかを判断します: os.path.islink(r"c:pythonhello.py") -- > False
25. ファイルサイズを取得します: os.path.getsize (filename)
26.*******: os.ismount("c:\") --> True
27. すべて検索ディレクトリ内のファイル: os.path.walk()
shutil モジュール ファイルに対する操作:
1. 単一ファイルをコピー: shultil.copy(oldfile, newfle)
2. ディレクトリ ツリー全体をコピー: shultil.copytree( r".setup", r".backup")
3. ディレクトリツリー全体を削除します: shultil.rmtree(r".backup")
临时文件的操作:
1.创建一个唯一的临时文件:tempfile.mktemp() --> filename
2.打开临时文件:tempfile.TemporaryFile()
内存文件(StringIO和cStringIO)操作
[4.StringIO] #cStringIO是StringIO模块的快速实现模块
1.创建内存文件并写入初始数据:f = StringIO.StringIO("Hello world!")
2.读入内存文件数据:print f.read() #或print f.getvalue() --> Hello world!
3.想内存文件写入数据:f.write("Good day!")
4.关闭内存文件:f.close()
import os import os.path import unittest import time #import pygame class PyFileCommonOperatorTest(unittest.TestCase): def __init__(self): """constructor""" def test01(self): print os.linesep print os.sep print os.pathsep print os.curdir print os.pardir print os.getcwd() print 'unittest here' if __name__ == "__main__": t = PyFileCommonOperatorTest() t.test01()
读文件的写法
#读文件的写法: #读文本文件: input = open('data', 'r')#第二个参数是默认的,可以不加 #读二进制文件: input = open('data', 'rb') #读取所有文件内容: open('xxoo.txt').read() #读取固定字节 open('abinfile', 'rb').read(100) #读每行 file_object.readlines()
更多python 文件操作api相关文章请关注PHP中文网!

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

VSコードはWindows 8で実行できますが、エクスペリエンスは大きくない場合があります。まず、システムが最新のパッチに更新されていることを確認してから、システムアーキテクチャに一致するVSコードインストールパッケージをダウンロードして、プロンプトとしてインストールします。インストール後、一部の拡張機能はWindows 8と互換性があり、代替拡張機能を探すか、仮想マシンで新しいWindowsシステムを使用する必要があることに注意してください。必要な拡張機能をインストールして、適切に動作するかどうかを確認します。 Windows 8ではVSコードは実行可能ですが、開発エクスペリエンスとセキュリティを向上させるために、新しいWindowsシステムにアップグレードすることをお勧めします。

VSコード拡張機能は、悪意のあるコードの隠れ、脆弱性の活用、合法的な拡張機能としての自慰行為など、悪意のあるリスクを引き起こします。悪意のある拡張機能を識別する方法には、パブリッシャーのチェック、コメントの読み取り、コードのチェック、およびインストールに注意してください。セキュリティ対策には、セキュリティ認識、良好な習慣、定期的な更新、ウイルス対策ソフトウェアも含まれます。

VSコードはPythonの書き込みに使用でき、Pythonアプリケーションを開発するための理想的なツールになる多くの機能を提供できます。ユーザーは以下を可能にします。Python拡張機能をインストールして、コードの完了、構文の強調表示、デバッグなどの関数を取得できます。デバッガーを使用して、コードを段階的に追跡し、エラーを見つけて修正します。バージョンコントロールのためにGitを統合します。コードフォーマットツールを使用して、コードの一貫性を維持します。糸くずツールを使用して、事前に潜在的な問題を発見します。

VSコードでは、次の手順を通じて端末でプログラムを実行できます。コードを準備し、統合端子を開き、コードディレクトリが端末作業ディレクトリと一致していることを確認します。プログラミング言語(pythonのpython your_file_name.pyなど)に従って実行コマンドを選択して、それが正常に実行されるかどうかを確認し、エラーを解決します。デバッガーを使用して、デバッグ効率を向上させます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

VSコードはMacで利用できます。強力な拡張機能、GIT統合、ターミナル、デバッガーがあり、豊富なセットアップオプションも提供しています。ただし、特に大規模なプロジェクトまたは非常に専門的な開発の場合、コードと機能的な制限がある場合があります。
