Python utime csv文件提供双反斜杠
我现在有这个代码:Python utime csv文件提供双反斜杠,python,Python,我现在有这个代码: import os import time import datetime import csv year = 2017 month = 12 day = 5 hour = 19 minute = 50 second = 0 date = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=minute, second=second) modTime = time.mktime(date
import os
import time
import datetime
import csv
year = 2017
month = 12
day = 5
hour = 19
minute = 50
second = 0
date = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=minute, second=second)
modTime = time.mktime(date.timetuple())
with open('Book1.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
rows = ''.join(row)
os.utime(rows, (modTime, modTime))
print("done")
当我打印行时,它工作正常,例如打印c:\test
当我运行utime时,它说它找不到有意义的c:\\test
在csv文件中,它只是说C:\
如何解决它,使其只产生一个反斜杠。从操作系统导入的第一个路径
from os import path
然后使用路径拆分行字符串
result = path.split(rows)
使用path.split结果的第一部分设置os.chdir[0]
os.chdir(result[0])
最后,os.utime将chdir中的文件与结果[1]中的文件名合并
os.utime(result[1], (modTime, modTime))
这是最后的代码
import os
import time
import datetime
import csv
from os import path
year = 2017
month = 12
day = 5
hour = 19
minute = 50
second = 0
date = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=minute,
second=second)
modTime = time.mktime(date.timetuple())
with open('Book1.csv', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
rows = ''.join(row)
result = path.split(rows)
os.chdir(result[0])
os.utime(result[1], (modTime, modTime))
print("done")
Books.csv看起来像什么?你能提供一个有几行的示例吗?只有一列c:\test\test.txt第二行c:\test\testing.txt第三行c:\finance\invoice.xlsx你的代码没有运行。它说:os.utime(rows,(modTime,modTime))FileNotFoundError:[Errno 2]没有这样的文件或目录。这段代码是否为您运行?如果book1.csv是一个只有一列的文件,您为什么要阅读它?如果是这种情况,那么它就不是一个真正的csv文件。它只是一个文本文件。我建议你简化你的例子。请看:您为什么在这里调用
os.utime
;你希望完成什么?尝试删除CSV读取,只专注于操作单个静态文件;另请参阅编写文件的指南。使用此代码,它仍然会执行双反斜杠并删除文件名。这在我的环境中运行良好,并正确更新了所有文件时间。您使用的是什么python?我使用的是python版本3.6,例如,如果文件是c:\test\test.txt,它主要显示c:\test,您可以将os.utime行的更新代码作为注释发布吗?拆分路径并在路径组件上运行chdir
,只会使此IMHO复杂化。为什么不直接将完整路径传递到os.utime
?