のファイルパスが存在するか確認し、存在しない場合は作成します。
#如果不存在路径,就创建一个这样的路径 if not os.path.exists(exp_path): os.mkdir(exp_path)
os.path.exists()
: 括弧内のファイルが存在するかどうかを確認します。括弧内のファイルはファイル パスになります。存在する場合は、 、 True を返し、存在しないため False を返します
os.mkdir()
: パス
file_list = os.listdir(dir_path)
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]
list()
^(* ̄(oo) ̄)^
タプルとリストは非常に似ています。違いは、タプルの要素値は変更できないことです。
タプルは括弧内に、リストは角括弧内に配置されます
情報を確認してください実験の結果、open()と同様の関数であることが分かりましたが、クローリングなどでデータを取得してファイルに書き込む場合、エンコードの不整合が問題となるため、一般的にはopen()に変換されます。 Unicode エンコーディング。
つまり、コーデックと open() を使用する方が便利です。
毎回ファイルの内容全体を 1 行ずつ読み取り、読み取った内容をリストに入れて、リストの型を返します。
毎回ファイルの内容全体を 1 行ずつ読み取り、読み取った内容をリストに入れてリスト型を返します
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 各ファイルラベルの意味
アクセス モード | 説明 |
---|---|
ファイルを読み取り専用で開きます。ファイル ポインタはファイルの先頭に配置されます。これがデフォルトのモードです。 | |
書き込み専用のファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。 | |
追加するファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツは既存のコンテンツの後に書かれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 | |
ファイルを読み取り専用としてバイナリ形式で開きます。ファイル ポインタはファイルの先頭に配置されます。これがデフォルトのモードです。 | |
書き込み専用のバイナリ形式でファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。 | |
追加するファイルをバイナリ形式で開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。言い換えれば、新しいコンテンツは既存のコンテンツの後に書かれます。ファイルが存在しない場合は、書き込み用に新しいファイルを作成します。 | |
読み取りと書き込みのためにファイルを開きます。ファイル ポインタはファイルの先頭に配置されます。 | |
読み取りと書き込みのためにファイルを開きます。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。 | |
読み取りと書き込みのためにファイルを開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。ファイルは追加モードで開かれます。ファイルが存在しない場合は、読み取りおよび書き込み用に新しいファイルが作成されます。 | |
読み取りおよび書き込みのためにファイルをバイナリ形式で開きます。ファイル ポインタはファイルの先頭に配置されます。 | |
ファイルをバイナリ形式で開き、読み取りと書き込みを行います。ファイルがすでに存在する場合は上書きされます。ファイルが存在しない場合は、新しいファイルを作成します。 | |
追加するファイルをバイナリ形式で開きます。ファイルがすでに存在する場合、ファイル ポインタはファイルの末尾に配置されます。ファイルが存在しない場合は、読み取りおよび書き込み用に新しいファイルが作成されます。 |
#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]['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(): """加载之前存储的数据""" 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 ファイル操作
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)])
以上がPython ファイルをロードして処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。