Python 是否有更好/更清晰的方式格式化此脚本
我对python非常陌生(编写了4个脚本来清理文件夹和移动一些东西),现在我有了一个新的挑战 我有这个csv文件,其中包含一些pdf的数据(pdf的名称、需要打印的时间等) 我有下面的atm代码,一切正常,但我发现它“不干净”,我希望有更好的方式格式化一些东西。 这是我的代码:Python 是否有更好/更清晰的方式格式化此脚本,python,python-3.x,csv,shutil,reader,Python,Python 3.x,Csv,Shutil,Reader,我对python非常陌生(编写了4个脚本来清理文件夹和移动一些东西),现在我有了一个新的挑战 我有这个csv文件,其中包含一些pdf的数据(pdf的名称、需要打印的时间等) 我有下面的atm代码,一切正常,但我发现它“不干净”,我希望有更好的方式格式化一些东西。 这是我的代码: import csv, shutil, os with open('\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\OhGreen P
import csv, shutil, os
with open('\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\OhGreen POS week 19.csv') as csvfile:
csvReader = csv.reader(csvfile, delimiter=';')
rows = csv.reader(csvfile)
headers = next(rows)
for row in csvReader:
NAAM = row[0]
Formaat = row[1]
Tekstkleur = row[2]
Gouvy = row[3]
LouvainLaNeuve = row[4]
Nannine = row[5]
Tournai = row[6]
SaintGeorges = row[7]
Aarschot = row[8]
Balen = row[9]
Ekeren = row[10]
Ninove = row[11]
SintKatelijneWaver = row[12]
Olen = row[13]
Zwijndrecht = row[14]
if Gouvy > "0":
file = NAAM + ".pdf"
path = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\" + Formaat + "\\" + file)
dest = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\2print\\" + Formaat + "\\" + NAAM + "_GOUVY" + ".pdf")
shutil.copy(path, dest)
print(dest , " changed name and moved to ", dest)
if LouvainLaNeuve > "0":
file = NAAM + ".pdf"
path = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\" + Formaat + "\\" + file)
dest = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\2print\\" + Formaat + "\\" + NAAM + "_LOUVAIN_LA_NEUVE" + ".pdf")
shutil.copy(path, dest)
print(dest , " changed name and moved to ", dest)
if Nannine > "0":
file = NAAM + ".pdf"
path = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\" + Formaat + "\\" + file)
dest = ("\\\\fatboy.leleu.be\\Psm\\Mailing Templates\\OhGreen\\Verwerking\\2print\\" + Formaat + "\\" + NAAM + "_NANNINE" + ".pdf")
shutil.copy(path, dest)
print(dest , " changed name and moved to ", dest)
此代码适用于csv中的每个城市名称(总共12个)
我想找个办法把这个弄干净。
就像我不需要为每个城市做一个if循环,也不需要为所有标题名等做一个循环
欢迎任何提示。
PS:我不会使用Pandas,因为我无法正确安装它,而且它在基本python中已经可以正常工作了。首先,将字符串存储为变量。您似乎经常重复使用同一字符串,因此如果将其存储为变量BASE_PATH,则可以执行以下操作:
BASE_PATH = "\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\"
path = BASE_PATH + Formaat + "\\" + file
甚至
BASE_PATH = "\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\{}\\{}"
path = BASE_PATH.format(Formaat, file)
其次,您可以将要检查的变量存储为字典并循环其键。例如:
BASE\u PATH=“\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\{}”
DEST_PATH=“\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\2print\\{}\\{}.pdf”
名称\索引\映射={
“GOUVY”:3,
“LOUVAIN_LA_NEUVE”:4,
“南九”:5
}
对于名称索引映射中的(名称,索引)。项()
如果行[索引]>“0”:
file=NAAM+“.pdf”
path=BASE\u path.format(格式,文件)
dest=dest_PATH.format(格式、NAAM、名称)
shutil.copy(路径,目标)
打印(路径“更改名称并移动到”,目的地)
最后,您确定需要将值与文本字符串
“0”
而不是数字0
进行比较吗?使用大于/小于逻辑比较字符串可能会产生意外结果。首先,将字符串存储为变量。您似乎经常重复使用同一字符串,因此如果将其存储为变量BASE_PATH,则可以执行以下操作:
BASE_PATH = "\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\"
path = BASE_PATH + Formaat + "\\" + file
甚至
BASE_PATH = "\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\{}\\{}"
path = BASE_PATH.format(Formaat, file)
其次,您可以将要检查的变量存储为字典并循环其键。例如:
BASE\u PATH=“\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\{}”
DEST_PATH=“\\\\fatboy.leleu.be\\Psm\\Mailing\\Templates\\OhGreen\\Verwerking\\2print\\{}\\{}.pdf”
名称\索引\映射={
“GOUVY”:3,
“LOUVAIN_LA_NEUVE”:4,
“南九”:5
}
对于名称索引映射中的(名称,索引)。项()
如果行[索引]>“0”:
file=NAAM+“.pdf”
path=BASE\u path.format(格式,文件)
dest=dest_PATH.format(格式、NAAM、名称)
shutil.copy(路径,目标)
打印(路径“更改名称并移动到”,目的地)
最后,您确定需要将值与文本字符串“0”
而不是数字0
进行比较吗?使用大于/小于逻辑比较字符串可能会产生意外结果。这个问题可能更适合codereview.stackexchange.com。不过,一定要先阅读他们的提交指南。这个问题可能更适合codereview.stackexchange.com。不过,一定要先阅读他们的提交指南。