我有一个包含.dbf
个文件的列表,我想将其更改为.csv
个文件。我在excel中打开它们并将它们重新保存为.csv
,但这需要花费太多时间。
现在我创建了一个更改文件名的脚本,但是当我打开它时,它仍然是.dbf
文件类型(虽然它被称为.csv
)。如何以文件类型也发生变化的方式重命名文件?
我的脚本使用(dbf和csv文件名列在单独的csv文件中):
IN = dbffile name
OUT = csvfile name
for output_line in lstRename:
shutil.copyfile(IN,OUT)
答案 0 :(得分:6)
更改文件名(扩展名只是完整名称的一部分)对文件内容完全没有影响。您需要以某种方式将内容从一种格式转换为另一种格式。
使用my dbf module和python非常简单:
import dbf
IN = 'some_file.dbf'
OUT = 'new_name.csv'
dbf.Table(IN).export(filename=OUT)
这将创建一个实际为csv格式的.csv
文件。
答案 1 :(得分:2)
如果您曾经使用过VB或查看过VBA,您可以编写一个简单的Excel脚本来打开每个文件,将其保存为csv,然后使用新名称保存。
使用宏录制器录制一次,然后编辑生成的脚本。
我现在已经创建了一个自动执行此操作的应用程序。它名为xlsto(查找xls.exe发布文件)。它允许您选择一个文件夹并将所有xls文件转换为csv(或任何其他类型)。
答案 2 :(得分:0)
您需要转换器
在Google中搜索dbf2csv
。
答案 3 :(得分:0)
这取决于你想做什么。您似乎想要将文件转换为其他类型。那里有很多转换器,但仅有一台计算机并不知道每种文件类型。为此,您需要下载一些软件。如果您只想更改文件扩展名, (例如.png,.doc,.wav)然后您可以将计算机设置为能够更改名称和扩展名。我希望我能以某种方式帮助过:)
答案 4 :(得分:-1)
descargar libreria dbfpy desde http://sourceforge.net/projects/dbfpy/?source=dlp
import csv,glob
from dbfpy import dbf
entrada = raw_input(" entresucarpetadbf ::")
lisDbf = glob.glob(entrada + "\\*dbf")
for db in lisDbf:
print db
try:
dbfFile = dbf.Dbf(open(db,'r'))
csvFile = csv.writer(open(db[:-3] + "csv", 'wb'))
headers = range(len(dbfFile.fieldNames))
allRows = []
for row in dbfFile:
rows = []
for num in headers:
rows.append(row[num])
allRows.append(rows)
csvFile.writerow(dbfFile.fieldNames)
for row in allRows:
print row
csvFile.writerow(row)
except Exception,e:
print e
答案 5 :(得分:-2)
可能是新文件名是“xzy.csv.dbf”。通常在C#中我将引号放在文件名中。这会强制操作系统更改文件名。在引号中尝试类似“Xzy.csv”的内容。