我是python的新手,我搜索了很多但在其他地方找不到同样的问题。
我有一个函数可以删除指定列上csv文件的引号,将结果写入temp.csv,然后使temp.csv替换file.csv。 除了重命名时出错。
这是代码
import csv
import os
dossier_racine = "D:\PROG\Lire CSV"
fichier_source = os.path.join(dossier_racine, "fichier.csv")
def removeQuote(fichier_csv, numColonne, separ=separateur):
fichier_temp = 'temp.csv'
print "\nOuverture du fichier %s" % fichier_csv
lecture_fichier = open(fichier_csv, 'rb')
lecture_csv = csv.reader(lecture_fichier)
ecriture_fichier = open(fichier_temp, 'wb')
ecriture_csv = csv.writer(ecriture_fichier)
print "\nRemplacement des quotes"
# remplace la chaine dans chaque ligne
for ligne in lecture_csv:
ligne[numColonne] = ligne[numColonne].replace("'", "")
ecriture_csv.writerow(ligne)
print "\nFermeture du fichier %s" % fichier_csv
# Fermeture des fichier_csv
ecriture_fichier.close()
lecture_fichier.close()
# récupère le nom du fichier source
nom_fichiercsv = os.path.basename(fichier_csv)
# récupère le nom du dossier contenant le fichier source
nom_dossier = os.path.dirname(fichier_csv)
# Supprime le fichier source pour que le fichier temp le remplace
os.remove(fichier_csv)
# Renomme le fichier temp avec le nom du fichier source
# Afin qu'il le remplace
os.rename(os.path.join(nom_dossier, fichier_temp),
os.path.join(nom_dossier, nom_fichiercsv))
removeQuote(fichier_source, 6)
使用PowerShell运行时一切正常。但是当我尝试使用Atom和Script包运行它时,我收到了这个错误:
WindowsError:[错误2] LSystem找不到指定的文件
在线:
os.rename(os.path.join(nom_dossier, fichier_temp),
os.path.join(nom_dossier, nom_fichiercsv))
有什么问题吗?如果是的话,你能帮我找到吗?
由于
答案 0 :(得分:0)
为了让Duncan的回答更加明显,我会在这里更新。
我在D:\PROG\Lire CSV
工作,但我的temp.csv
是在工作目录中创建的,这对Atom来说是不同的。
所以,我刚刚在创建时更改了temp.csv
的位置,并在nom_dossier
中创建了它。