【发布时间】:2019-09-12 01:06:00
【问题描述】:
我有一个 CSV 文件,我想: 1. 将 CSV 作为数据框导入 2. 一次读一排 3. 将每个单元格的 VALUES 复制到单独的字符串中 4.打印字符串 5. 转到下一行并重复步骤 3-4 直到完成。
我的代码可以正常工作,它确实会读入并打印前 2 行,但我的 CSVC 文件中有 6 行。
我尝试添加一个索引字段,但这并没有太大帮助,打印了 3 行而不是 6 行。
这是我的 CSV 文件的样子:(额外的行返回是为了让您可以阅读它,没有显示在我的文件中。
00C525B70C246049E4.dwg,011021a.dwg
00CD5B2301DF204DCC.dwg,010636e.dwg
00F70B6C0B1EF04B54.dwg,005159v.dwg
0A02B9F7087BF040D5.dwg,003552n.dwg
0A1EE7CC078B404C64.dwg,020526c.dwg
0A1F67D201CCD04F81.doc,X1771-a.doc
import pandas
colnames = ['infocard','file_name']
data = pandas.read_csv('E:/test_Files_To_Rename.csv', names=colnames)
for i, elem in enumerate(data,0):
sfile = data.loc[i,"infocard"]
dst = data.loc[i,"file_name"]
print( sfile +' to ' + dst )
一旦我让程序打印两个不同的文件名,我想用以下方式替换打印语句:
os.rename(sfile, dst)
所以我可以重命名文件。我正在测试 6 个文件,我的数据库有 50,000 个文件,这就是我想使用脚本的原因。
这是显示的内容:
00C525B70C246049E4.dwg 到 011021a.dwg
00CD5B2301DF204DCC.dwg 转 010636e.dwg
有什么想法吗? 谢谢!
【问题讨论】:
-
文件重命名后是否使用数据框?如果没有,我建议改用
csv模块,因为csv.reader 可能会提高性能并避免从单独的数据结构中读取 -
关于您的实际问题:当您在数据框上调用
enumerate时,您只是在 df.xml 中创建列名的枚举。尝试打印出list(enumerate(data))以了解我的意思。您可能会发现data.iterrows()对您的目的更有帮助。