目次
ファイルの読み込みと処理
1. ファイルの読み込みと処理方法についての python
2 を作成します。ファイル名をリストに並べます
3. 要件を満たさないファイルをフィルタリングします
4。タプルをリストに変換するために使用されます
5. ファイル コーデックを開き、open()
6. readlines()
7、strip ()
Python ファイル処理 (概要)
1. txtファイル
2.1 csv 書き込み
ホームページ バックエンド開発 Python チュートリアル Python ファイルをロードして処理するにはどうすればよいですか?

Python ファイルをロードして処理するにはどうすればよいですか?

May 09, 2023 pm 09:01 PM
python

ファイルの読み込みと処理

1. ファイルの読み込みと処理方法についての python

のファイルパスが存在するか確認し、存在しない場合は作成します。

#如果不存在路径,就创建一个这样的路径
    if not os.path.exists(exp_path):
        os.mkdir(exp_path)
ログイン後にコピー
  • os.path.exists(): 括弧内のファイルが存在するかどうかを確認します。括弧内のファイルはファイル パスになります。存在する場合は、 、 True を返し、存在しないため False を返します

  • os.mkdir(): パス

2 を作成します。ファイル名をリストに並べます

file_list = os.listdir(dir_path)
ログイン後にコピー

3. 要件を満たさないファイルをフィルタリングします

filter()関数を使用してシーケンスをフィルタリングし、条件を満たさない要素を除外しますを返し、条件を満たす要素で構成されるシーケンスを返します。 新しいリスト

filter(function, iterable)
ログイン後にコピー
  • function -- 判定関数。

  • 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。タプルをリストに変換するために使用されます

  • list()

^(* ̄(oo) ̄)^

タプルとリストは非常に似ています。違いは、タプルの要素値は変更できないことです。

タプルは括弧内に、リストは角括弧内に配置されます

5. ファイル コーデックを開き、open()

情報を確認してください実験の結果、open()と同様の関数であることが分かりましたが、クローリングなどでデータを取得してファイルに書き込む場合、エンコードの不整合が問題となるため、一般的にはopen()に変換されます。 Unicode エンコーディング。

つまり、コーデックと open() を使用する方が便利です。

6. readlines()

毎回ファイルの内容全体を 1 行ずつ読み取り、読み取った内容をリストに入れて、リストの型を返します。

7、strip ()

毎回ファイルの内容全体を 1 行ずつ読み取り、読み取った内容をリストに入れてリスト型を返します

Python ファイル処理 (概要)

1. txtファイル

1.1 txtファイルの読み込み

        with open("11.txt", 'r') as file:
            for l in file:
                idnos.append(l.replace('\n',''))
        f.close()  # 关闭文件,这个可以是个好习惯哦
ログイン後にコピー

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書き込み専用のファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。 #arbwbabr w a #rb wb ab 1.4 txt のすべての内容を 1 行ずつ読み取ります
アクセス モード説明
追加するファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツは既存のコンテンツの後に書かれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。
ファイルを読み取り専用としてバイナリ形式で開きます。ファイル ポインタはファイルの先頭に配置されます。これがデフォルトのモードです。
書き込み専用のバイナリ形式でファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。
追加するファイルをバイナリ形式で開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツは既存のコンテンツの後に書かれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。
読み取りと書き込みのためにファイルを開きます。ファイル ポインタはファイルの先頭に配置されます。
読み取りと書き込みのためにファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。
読み取りと書き込みのためにファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。ファイルは追加モードで開かれます。ファイルが存在しない場合は、読み取りおよび書き込み用に新しいファイルが作成されます。
読み取りおよび書き込みのためにファイルをバイナリ形式で開きます。ファイル ポインタはファイルの先頭に配置されます。
ファイルをバイナリ形式で開き、読み取りと書き込みを行います。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。
追加するファイルをバイナリ形式で開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、読み取りおよび書き込み用に新しいファイルが作成されます。
#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 の最初の 2 行の内容を読み取ります

#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
# 创建新文件
newFile = open(newFileName, 'wb')
# 把旧文件中的数据,一行一行的进行复制到新文件中
for lineContent in oldFile.readlines():
    newFile.write(lineContent)
# 关闭文件
oldFile.close()
newFile.close()
ログイン後にコピー

1.7 ファイル関連の操作

ファイル名の変更

import os
os.rename("毕业论文.txt", "毕业论文-最终版.txt")
ログイン後にコピー

ファイルの削除

import os
os.remove("毕业论文.txt")
ログイン後にコピー

フォルダーの作成

import os
os.mkdir("张三")
ログイン後にコピー

現在のファイルの取得ディレクトリ

import os
os.getcwd()
ログイン後にコピー

デフォルトのディレクトリの変更

import os
os.chdir("../")
ログイン後にコピー

ディレクトリリストの取得

import os
os.listdir("./")
ログイン後にコピー

フォルダの削除

import os
os.rmdir("张三")
ログイン後にコピー

1.8 ファイル管理 - 学生管理システム

注意: 最初にファイルを作成します: info_data.data

import time
import os
# 定一个列表,用来存储所有的学生信息(每个学生是一个字典)
info_list = []
def print_menu():
    print("---------------------------")
    print("      学生管理系统 V1.0")
    print(" 1:添加学生")
    print(" 2:删除学生")
    print(" 3:修改学生")
    print(" 4:查询学生")
    print(" 5:显示所有学生")
    print(" 6:保存数据")
    print(" 7:退出系统")
    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("此用户名已经被占用,请重新输入")
            return  # 如果一个函数只有return就相当于让函数结束,没有返回值
    # 定义一个字典,用来存储用户的学生信息(这是一个字典)
    info = {}
    # 向字典中添加数据
    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][&#39;name&#39;],
            info_list[modify_num][&#39;tel&#39;],info_list[modify_num][&#39;qq&#39;]))
        info_list[modify_num][&#39;name&#39;] = input("请输入新的姓名:")
        info_list[modify_num][&#39;tel&#39;] = input("请输入新的手机号:")
        info_list[modify_num][&#39;qq&#39;] = input("请输入新QQ:")
    else:
        print("输入序号有误,请重新输入")
def search_info():
    """查询学生信息"""
    search_name = input("请输入要查询的学生姓名:")
    for temp_info in info_list:
        if temp_info[&#39;name&#39;] == search_name:
            print("查询到的信息如下:")
            print("name:%s, tel:%s, QQ:%s" % (temp_info[&#39;name&#39;],
                temp_info[&#39;tel&#39;], temp_info[&#39;qq&#39;]))
            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[&#39;name&#39;], temp[&#39;tel&#39;], temp[&#39;qq&#39;]))
        i += 1
def save_data():
    """加载之前存储的数据"""
    f = open("info_data.data", "w")
    f.write(str(info_list))
    f.close()
def load_data():
    """加载之前存储的数据"""
    global info_list
    f = open("info_data.data")
    content = f.read()
    info_list = eval(content)
    f.close()
def main():
    """用来控制整个流程"""
    # 加载数据(1次即可)
    load_data()
    while True:
        # 1. 打印功能
        print_menu()
        # 2. 获取用户的选择
        num = input("请输入要进行的操作(数字):")
        # 3. 根据用户选择,做相应的事情
        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":
            # 保存数据到文件中
            save_data()
        elif num == "7":
            # 退出系统
            exit_flag = input("亲,你确定要退出么?~~~~(>_<)~~~~(yes or no) ")
            if exit_flag == "yes":
                break
        else:
            print("输入有误,请重新输入......")
        input("\n\n\n按回车键继续....")
        os.system("clear")  # 调用Linux命令clear完成清屏
# 程序的开始
main()
ログイン後にコピー

2. csv ファイル操作

2.1 csv 書き込み

with open(&#39;新1.csv&#39;, &#39;a&#39;, encoding=&#39;utf-8-sig&#39;, newline=&#39;&#39;) as f:
    csv_writer = csv.writer(f, delimiter=&#39;,&#39;)
    csv_writer.writerow(
        [str(name), str(zijin), str(guimo), str(jingli), str(phone1), str(phone2),str(chanpin)])
ログイン後にコピー

以上がPython ファイルをロードして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

PHPおよびPython:コードの例と比較 PHPおよびPython:コードの例と比較 Apr 15, 2025 am 12:07 AM

PHPとPythonには独自の利点と短所があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1.PHPは、大規模なWebアプリケーションの迅速な開発とメンテナンスに適しています。 2。Pythonは、データサイエンスと機械学習の分野を支配しています。

CentosでPytorchモデルを訓練する方法 CentosでPytorchモデルを訓練する方法 Apr 14, 2025 pm 03:03 PM

CentOSシステムでのPytorchモデルの効率的なトレーニングには手順が必要であり、この記事では詳細なガイドが提供されます。 1。環境の準備:Pythonおよび依存関係のインストール:Centosシステムは通常Pythonをプリインストールしますが、バージョンは古い場合があります。 YumまたはDNFを使用してPython 3をインストールし、PIP:sudoyumupdatepython3(またはsudodnfupdatepython3)、pip3install-upgradepipをアップグレードすることをお勧めします。 cuda and cudnn(GPU加速):nvidiagpuを使用する場合は、cudatoolをインストールする必要があります

Python vs. JavaScript:コミュニティ、ライブラリ、リソース Python vs. JavaScript:コミュニティ、ライブラリ、リソース Apr 15, 2025 am 12:16 AM

PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

CentosのPytorchのGPUサポートはどのようにサポートされていますか CentosのPytorchのGPUサポートはどのようにサポートされていますか Apr 14, 2025 pm 06:48 PM

Pytorch GPUアクセラレーションを有効にすることで、CentOSシステムでは、PytorchのCUDA、CUDNN、およびGPUバージョンのインストールが必要です。次の手順では、プロセスをガイドします。CUDAおよびCUDNNのインストールでは、CUDAバージョンの互換性が決定されます。NVIDIA-SMIコマンドを使用して、NVIDIAグラフィックスカードでサポートされているCUDAバージョンを表示します。たとえば、MX450グラフィックカードはCUDA11.1以上をサポートする場合があります。 cudatoolkitのダウンロードとインストール:nvidiacudatoolkitの公式Webサイトにアクセスし、グラフィックカードでサポートされている最高のCUDAバージョンに従って、対応するバージョンをダウンロードしてインストールします。 cudnnライブラリをインストールする:

Dockerの原則の詳細な説明 Dockerの原則の詳細な説明 Apr 14, 2025 pm 11:57 PM

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

Centosの下でPytorchバージョンを選択する方法 Centosの下でPytorchバージョンを選択する方法 Apr 14, 2025 pm 02:51 PM

CentOSでPytorchバージョンを選択する場合、次の重要な要素を考慮する必要があります。1。CUDAバージョンの互換性GPUサポート:NVIDIA GPUを使用してGPU加速度を活用したい場合は、対応するCUDAバージョンをサポートするPytorchを選択する必要があります。 NVIDIA-SMIコマンドを実行することでサポートされているCUDAバージョンを表示できます。 CPUバージョン:GPUをお持ちでない場合、またはGPUを使用したくない場合は、PytorchのCPUバージョンを選択できます。 2。PythonバージョンPytorch

NginxをCentosにインストールする方法 NginxをCentosにインストールする方法 Apr 14, 2025 pm 08:06 PM

NGINXのインストールをインストールするには、次の手順に従う必要があります。開発ツール、PCRE-Devel、OpenSSL-Develなどの依存関係のインストール。 nginxソースコードパッケージをダウンロードし、それを解凍してコンパイルしてインストールし、/usr/local/nginxとしてインストールパスを指定します。 nginxユーザーとユーザーグループを作成し、アクセス許可を設定します。構成ファイルnginx.confを変更し、リスニングポートとドメイン名/IPアドレスを構成します。 nginxサービスを開始します。依存関係の問題、ポート競合、構成ファイルエラーなど、一般的なエラーに注意する必要があります。パフォーマンスの最適化は、キャッシュをオンにしたり、ワーカープロセスの数を調整するなど、特定の状況に応じて調整する必要があります。

CentosでPytorchの分散トレーニングを操作する方法 CentosでPytorchの分散トレーニングを操作する方法 Apr 14, 2025 pm 06:36 PM

Pytorchの分散トレーニングでは、Centosシステムでトレーニングには次の手順が必要です。Pytorchのインストール:PythonとPipがCentosシステムにインストールされていることです。 CUDAバージョンに応じて、Pytorchの公式Webサイトから適切なインストールコマンドを入手してください。 CPUのみのトレーニングには、次のコマンドを使用できます。PipinstalltorchtorchtorchvisionTorchaudioGPUサポートが必要な場合は、CUDAとCUDNNの対応するバージョンがインストールされ、インストールに対応するPytorchバージョンを使用してください。分散環境構成:分散トレーニングには、通常、複数のマシンまたは単一マシンの複数GPUが必要です。場所

See all articles