Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python utime csv文件提供双反斜杠_Python - Fatal编程技术网

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