最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Python的一個自動錄入表格的小程序

 更新時間:2020年08月05日 10:13:35   作者:沙漏在下雨  
這篇文章主要介紹了基于Python的一個自動錄入表格的小程序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

## 幫阿雪寫的一個小程序
---------------------------------------------------------------------------------------------------
上大學(xué)的時候,總是會由很多表格需要同學(xué)們?nèi)ジ?,尤其是剛開學(xué)的那個時候,顯然是很煩躁,
阿雪剛開學(xué)的時候,作為班干部,表示有時候剛錄表不是很熟悉經(jīng)常會弄到很晚,甚至還會弄錯,
這就讓我很是觸動,所以想幫她搞一搞,順便增強(qiáng)一下我們的友誼/hhhhhh
---------------------------------------------------------------------------------------------------

思路:

第一步: 信息還是要填的,以往是同學(xué)們發(fā)給班委,然后慢慢來搞,但現(xiàn)在不一樣的,我要求同學(xué)們把他們要填的信息寫在記事本里面,內(nèi)容之間用中文逗號隔開,然后在發(fā)給我就行。

第二步: 阿雪只要做的事情是把每個小朋友發(fā)的txt文本點擊下載就行了,這個顯然很簡單的事情。

第三步: QQ個人接受的文件一般都會在 (FileRecv)這個文件夾內(nèi),每個朋友QQ存放的位置不一樣我這里就不詳細(xì)說明了,我自己存放的位置是:(r'D://qq//qq文檔//‘我的qq號'/FileRecv//) 我們把這個路徑就姑且叫做qq_path吧!這個路徑我們需要事先寫入代碼內(nèi),我這里定義的函數(shù)是copy_file()內(nèi):具體思想對了就行。

第四步: 整個程序沒啥操作難度,根據(jù)提示填入指令就行,都是批量處理,函數(shù)中我設(shè)置了時間間隔,我個人感覺這樣能讓程序有個停頓感,更友好一點吧。

函數(shù)庫:

  1. os庫: 用于創(chuàng)建文件夾,修改路徑,確定路徑,文件遍歷等操作
  2. csv庫: 用于表格的錄入time庫: 用于程序停頓感
  3. pandas庫: 用于csv和xlsx格式之間的轉(zhuǎn)換
  4. shutil庫: 用于文件的復(fù)制

復(fù)制函數(shù):把qq接受的文件全部轉(zhuǎn)移到我們指定的位置便于操作

def copy_file(): # 將qq地址下的文本文件轉(zhuǎn)移到文本存放處待用
 qq_path = r'D://qq//qq文檔//qq//FileRecv//' # 文本在qq的位置
 for filename in os.listdir(qq_path):
  txt_path = os.path.join(qq_path, filename) # 拼接這二個地址 進(jìn)行判斷
  if txt_path[-4:] == '.txt':
   if txt_path[-5:-4] in [str(i) for i in range(10)]:
    # 取后綴判斷 取學(xué)號判斷 是否是我們需要的txt
    shutil.copy(txt_path, patht) # 進(jìn)行復(fù)制
    os.remove(txt_path) # 刪除在qq地址的文件 避免下次錄入 文本過多
   elif txt_path[-6:-4] in [str(i) for i in range(10, 66)]: # 班級人數(shù)個人設(shè)定
    shutil.copy(txt_path, patht) # 進(jìn)行復(fù)制
    os.remove(txt_path) # 刪除在qq地址的文件 避免下次錄入 文本過多

 return qq_path

信息的錄入:遍歷文件夾,逐一讀入文本,將得到的信息放入列表

def luru():
 # 把文本以學(xué)號保存 文本里面信息用中文逗號分隔
 qq_path = copy_file() # 復(fù)制文本到patht
 listss = [] # 錄入信息列表
 filenamepath = [] # 文件名稱地址
 pathtxt = r'D://測試文件//文本存放處//'
 for filename in os.listdir(pathtxt): # 遍歷文本存放處所有的文件
  filenamepath.append(os.path.join(pathtxt, filename))
 print("當(dāng)前目錄{}存放著{}個文件:".format(pathtxt, len(filenamepath)))
 if len(filenamepath) == 0:
  print('請確保文件正確存放在{}處:'.format(qq_path))
 for i in range(len(filenamepath)): # 遍歷這個列表 獲得絕對地址
  with open(filenamepath[i], "r", encoding='utf-8') as fo:
   for j in fo:
    listss.append(j.split(','))

 return listss

在這里我加了一個小判斷,如果錄入文本信息為0,那么可能qq接受信息地址沒有填對,路徑?jīng)]有很好的確定,導(dǎo)致這個bug

表格的錄入:這個就很簡單了,利用os庫和csv庫

def wubiaotou():
 name = input("重命名該表格名稱:")
 with open(pathb + name + ".csv", "a+", newline='') as fo:
  num = input("請輸入表頭,并用中文逗號分隔開:")
  headers = num.split(",")
  # headers = ["國籍","民族","省份"]
  fr_csv = csv.writer(fo)
  fr_csv.writerow(headers)
  fr_csv.writerows(lists)

 pathnamew = pathb + name + '.csv'
 time.sleep(0.5)
 successful(pathnamew)
 time.sleep(2)
 demo()

刪除功能:象征性的寫了一下,為了把功能完善一點。

def del_s(path_, fg):
 os.chdir(path_) # 進(jìn)入path_存放處地址
 biaonumber = len(os.listdir(path_))
 print("當(dāng)前目錄下{}存在{}個文件:".format(path_, biaonumber))
 if biaonumber == 0:
  print("無需刪除,當(dāng)前目錄下存在{}個文件".format(biaonumber))
 else:
  delnum = input("請輸入要刪除的文件名稱,并用中文逗號隔開,若輸入all則全部刪除:").split(",")
  if delnum[0] == 'all': # 當(dāng)索引第一個為all則刪除全部
   for filename in os.listdir(path_): # 遍歷這個文件夾
    os.remove(os.path.join(path_, filename))
   time.sleep(0.5)
   print("已經(jīng)刪除{}目錄下所有文件!".format(path_))
  else: # 刪除輸入的表格名稱
   for i in range(len(delnum)):
    fn = str(delnum[i]) + fg
    os.remove(os.path.join(path_ + fn))
   time.sleep(0.5)
   print("已經(jīng)刪除{}目錄下{}個文件!".format(path_, len(delnum)))
 time.sleep(2)
 demo()


整個代碼不是很難理解,仔細(xì)看看應(yīng)該都能明白,相信你們,奧力給,干了兄弟們!

全部代碼如下:

# -*- coding : utf-8 -*-
# @Time  : 2020/3/2 18:38
# @author : 沙漏在下雨
# @Software : PyCharm
import os
import csv
import time
import pandas as pd
import shutil

path = r'D://測試文件//'
if not os.path.exists(path): # 創(chuàng)建這個存放文件的大目錄
 os.mkdir(path)

patht = path + "文本存放處//"
if not os.path.exists(patht): # 創(chuàng)建這個存放文本的文件夾
 os.mkdir(patht)

pathb = path + "表格存放處//"
if not os.path.exists(pathb): # 創(chuàng)建這個存放表格的文件夾
 os.mkdir(pathb)


def copy_file(): # 將qq地址下的文本文件轉(zhuǎn)移到文本存放處待用
 qq_path = r'D://qq//qq文檔//qq//FileRecv//' # 文本在qq的位置
 for filename in os.listdir(qq_path):
  txt_path = os.path.join(qq_path, filename) # 拼接這二個地址 進(jìn)行判斷
  if txt_path[-4:] == '.txt':
   if txt_path[-5:-4] in [str(i) for i in range(10)]:
    # 取后綴判斷 取學(xué)號判斷 是否是我們需要的txt
    shutil.copy(txt_path, patht) # 進(jìn)行復(fù)制
    os.remove(txt_path) # 刪除在qq地址的文件 避免下次錄入 文本過多
   elif txt_path[-6:-4] in [str(i) for i in range(10, 66)]:
    shutil.copy(txt_path, patht) # 進(jìn)行復(fù)制
    os.remove(txt_path) # 刪除在qq地址的文件 避免下次錄入 文本過多

 return qq_path


def luru():
 # 把文本以學(xué)號保存 文本里面信息用中文逗號分隔
 qq_path = copy_file() # 復(fù)制文本到patht
 listss = [] # 錄入信息列表
 filenamepath = [] # 文件名稱地址
 pathtxt = r'D://測試文件//文本存放處//'
 for filename in os.listdir(pathtxt): # 遍歷文本存放處所有的文件
  filenamepath.append(os.path.join(pathtxt, filename))
 print("當(dāng)前目錄{}存放著{}個文件:".format(pathtxt, len(filenamepath)))
 if len(filenamepath) == 0:
  print('請確保文件正確存放在{}處:'.format(qq_path))
 for i in range(len(filenamepath)): # 遍歷這個列表 獲得絕對地址
  with open(filenamepath[i], "r", encoding='utf-8') as fo:
   for j in fo:
    listss.append(j.split(','))

 return listss


lists = luru()


def youbiaotou():
 print("請將帶有表頭的表格事先放入{}處待用:".format(pathb))
 names = input("請輸入該表格名稱:")
 pathnamey = pathb + names + ".xlsx" # 獲得原xlsx的地址
 # 使用pandas 講 xlsx 轉(zhuǎn)換為 csv 格式 便于后續(xù)操作
 date_xlsx = pd.read_excel(pathnamey, index_col=0)
 pathnamec = pathb + names + '.csv'
 date_xlsx.to_csv(pathnamec, encoding='utf_8_sig') # 防止轉(zhuǎn)換時候編碼錯誤
 with open(pathnamec, "a+", encoding='utf-8', newline='') as fo:
  fw_csv = csv.writer(fo)
  fw_csv.writerows(lists) # 寫入多行
 time.sleep(0.5)
 successful(pathnamec)
 time.sleep(2)
 demo()


def successful(pathname): # 錄入成功標(biāo)識
 print("表格制作成功!".center(38, '-'))
 print("表格位置:{}".format(pathname))
 print("--" * 22)


def wubiaotou():
 name = input("重命名該表格名稱:")
 with open(pathb + name + ".csv", "a+", newline='') as fo:
  num = input("請輸入表頭,并用中文逗號分隔開:")
  headers = num.split(",")
  # headers = ["國籍","民族","省份"]
  fr_csv = csv.writer(fo)
  fr_csv.writerow(headers)
  fr_csv.writerows(lists)

 pathnamew = pathb + name + '.csv'
 time.sleep(0.5)
 successful(pathnamew)
 time.sleep(2)
 demo()


def helpss(): # 幫助信息
 helptxt = ('說明:\t該程序主要作用是實現(xiàn)簡單的自動錄入表格功能\n\n'
    '格式:\t文本信息寫入記事本并用中文逗號將內(nèi)容隔開,命名規(guī)則為學(xué)生學(xué)號\n\n'
    '操作:\t只需要事先獲得本臺機(jī)器騰訊QQ文件保存地址即(FileRecv地址)'
    '將其事先寫入代碼內(nèi)\n\n'
    '備注:\t程序自動將文本打包放入文本存放處(具體位置:{0})進(jìn)行后續(xù)操作\n\n'
    '\t若調(diào)用模塊有表頭錄入功能,請事先將待用表格放入({1})處待用\n\n'
    '\t最后表格將放入表格存放處(具體位置:{2})進(jìn)行查看\n\n'
    '\t同時程序功能還實現(xiàn)了批量刪除文本和表格功能供給選擇\n\n'
    '\t若存在相同名稱表格的不同格式'
    '則優(yōu)先刪除(.csv)格式的表格\n\n'.format(patht, pathb, pathb))
 with open(path + '幫助信息.txt', "w", encoding='utf-8') as fo:
  fo.write(helptxt)
 if os.path.exists(path + '幫助信息.txt'):
  # newname = '幫助信息.txt'
  # os.rename(path+'helptxt.txt',path+newname)
  os.system(path + '幫助信息.txt')

 demo()


def del_s(path_, fg):
 os.chdir(path_) # 進(jìn)入path_存放處地址
 biaonumber = len(os.listdir(path_))
 print("當(dāng)前目錄下{}存在{}個文件:".format(path_, biaonumber))
 if biaonumber == 0:
  print("無需刪除,當(dāng)前目錄下存在{}個文件".format(biaonumber))
 else:
  delnum = input("請輸入要刪除的文件名稱,并用中文逗號隔開,若輸入all則全部刪除:").split(",")
  if delnum[0] == 'all': # 當(dāng)索引第一個為all則刪除全部
   for filename in os.listdir(path_): # 遍歷這個文件夾
    os.remove(os.path.join(path_, filename))
   time.sleep(0.5)
   print("已經(jīng)刪除{}目錄下所有文件!".format(path_))
  else: # 刪除輸入的表格名稱
   for i in range(len(delnum)):
    fn = str(delnum[i]) + fg
    os.remove(os.path.join(path_ + fn))
   time.sleep(0.5)
   print("已經(jīng)刪除{}目錄下{}個文件!".format(path_, len(delnum)))
 time.sleep(2)
 demo()


def demo(): # 目錄因素
 fix = '-' * 44
 title = '文本錄入表格系統(tǒng)'.center(38, '-')
 helps = '使用說明請輸入數(shù)值 1'.center(40, ' ')
 fit1 = '模板無表頭請輸數(shù)值 2'.center(40, ' ')
 fit2 = '模板有表頭請輸數(shù)值 3'.center(40, ' ')
 del1 = '刪除文本請輸入數(shù)值 4'.center(40, ' ')
 del2 = '刪除表格請輸入數(shù)值 5'.center(40, ' ')
 fix = '-' * 44
 c = ['fix', 'title', 'helps', 'fit1', 'fit2', 'del1', 'del2', 'fix']
 for i in c:
  print('{}'.format(eval(i)))
 control = input("請輸入你的數(shù)值:")
 if control == '1':
  helpss()
 elif control == '2':
  wubiaotou()
 elif control == '3':
  youbiaotou()
 elif control == '4':
  fg = '.txt'
  del_s(patht, fg)
 elif control == '5':
  fg = '.csv'
  del_s(pathb, fg)
 else:
  print("輸入選項錯誤!")


demo()

到此這篇關(guān)于基于Python的一個自動錄入表格的小程序的文章就介紹到這了,更多相關(guān)基于Python自動錄入表格內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 函數(shù)基礎(chǔ)知識匯總

    Python 函數(shù)基礎(chǔ)知識匯總

    Python中的函數(shù),無論是命名函數(shù),還是匿名函數(shù),都是語句和表達(dá)式的集合。函數(shù)可以作為參數(shù)傳遞給其他函數(shù),這些以其他函數(shù)作為參數(shù)的函數(shù)通常稱為更高階函數(shù),這就構(gòu)成了函數(shù)式編程中一個非常重要的部分。
    2018-03-03
  • 完全卸載Anaconda的最新教程

    完全卸載Anaconda的最新教程

    本文主要介紹了使用anaconda-clean依賴包來完全清除Anaconda的附帶文件,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • Python線程同步的實現(xiàn)代碼

    Python線程同步的實現(xiàn)代碼

    本文介紹了threading 模塊提供的線程同步原語包括:Lock、RLock、Condition、Event、Semaphore等對象。對大家的學(xué)習(xí)具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2018-10-10
  • python中實現(xiàn)精確的浮點數(shù)運(yùn)算詳解

    python中實現(xiàn)精確的浮點數(shù)運(yùn)算詳解

    計算機(jī)智能處理可數(shù)集合的運(yùn)算,但是全體實數(shù)是不可數(shù)的,所以計算機(jī)只能用一些奇怪的方法來擬合他,于是就產(chǎn)生了浮點數(shù)。下面這篇文章主要給大家介紹了關(guān)于python中實現(xiàn)精確浮點數(shù)運(yùn)算的相關(guān)資料,需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Pytorch如何快速計算余弦相似性矩陣

    Pytorch如何快速計算余弦相似性矩陣

    這篇文章主要介紹了Pytorch如何快速計算余弦相似性矩陣問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Flask框架學(xué)習(xí)筆記之路由和反向路由詳解【圖文與實例】

    Flask框架學(xué)習(xí)筆記之路由和反向路由詳解【圖文與實例】

    這篇文章主要介紹了Flask框架學(xué)習(xí)筆記之路由和反向路由,結(jié)合圖文與實例形式詳細(xì)分析了flask框架中路由與反向路由相關(guān)概念、原理、用法與相關(guān)操作注意事項,需要的朋友可以參考下
    2019-08-08
  • django應(yīng)用JWT(JSON?Web?Token)實戰(zhàn)教程

    django應(yīng)用JWT(JSON?Web?Token)實戰(zhàn)教程

    在前后端分離的項目中,JWT(JSON?Web?Token)作為一種廣泛使用的身份驗證和授權(quán)機(jī)制,提供了一種安全、高效的方式來保護(hù)RESTful?API,本文詳細(xì)介紹了JWT的概念、優(yōu)勢、在Django中的應(yīng)用步驟和使用方法,是構(gòu)建安全、高效Web應(yīng)用的有效指南
    2024-10-10
  • python實現(xiàn)密度聚類(模板代碼+sklearn代碼)

    python實現(xiàn)密度聚類(模板代碼+sklearn代碼)

    這篇文章主要介紹了python實現(xiàn)密度聚類(模板代碼+sklearn代碼),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Python中用pyinstaller打包時的圖標(biāo)問題及解決方法

    Python中用pyinstaller打包時的圖標(biāo)問題及解決方法

    這篇文章主要介紹了python中用pyinstaller打包時的圖標(biāo)問題及解決方法,本文從兩方面給大家分析原因所在,通過截圖實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-02-02
  • python實現(xiàn)指定字符串補(bǔ)全空格、前面填充0的方法

    python實現(xiàn)指定字符串補(bǔ)全空格、前面填充0的方法

    這篇文章主要介紹了python實現(xiàn)指定字符串補(bǔ)全空格、前面填充0的方法 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11

最新評論

拉孜县| 密云县| 万年县| 葵青区| 望奎县| 淳化县| 隆化县| 巨野县| 冕宁县| 璧山县| 南丹县| 洮南市| 乌拉特前旗| 蓝田县| 海城市| 兴和县| 义乌市| 邯郸县| 蕲春县| 朝阳市| 柘城县| 福州市| 沐川县| 谢通门县| 南京市| 汪清县| 全南县| 华蓥市| 聂荣县| 沈阳市| 县级市| 连云港市| 隆昌县| 南靖县| 尤溪县| 泰宁县| 青河县| 宁远县| 聊城市| 乌苏市| 徐闻县|