Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 如何修复erroos.rename()错误[WinError 123]文件名、目录名或卷标语法不正确_Python_Docker_Operating System_Rename - Fatal编程技术网

Python 如何修复erroos.rename()错误[WinError 123]文件名、目录名或卷标语法不正确

Python 如何修复erroos.rename()错误[WinError 123]文件名、目录名或卷标语法不正确,python,docker,operating-system,rename,Python,Docker,Operating System,Rename,我正在尝试重命名文件并将日期时间附加到文件名: current_date = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S') os.rename(r'C:\Users\xxx\test.csv', r'C:\Users\xxx\test__' + str(current_date) + '.csv') 错误: OSError: [WinError 123] The filename, directory n

我正在尝试重命名文件并将日期时间附加到文件名:

current_date = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')

os.rename(r'C:\Users\xxx\test.csv',
          r'C:\Users\xxx\test__' + str(current_date) + '.csv')

错误:

OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect
我还尝试:

current_date = datetime.datetime.today().strftime('%Y-%m-%d %H:%M:%S')

old = 'C:/Users/xxx/test.csv'
new = 'C:/Users/xxx/test_' + str(current_date) + '.csv'
os.rename(old, new)

还是有同样的错误,有人能帮我吗。这个脚本将在docker容器中运行,我怀疑如果我不能重命名本地文件,我可以在docker映像中重命名它吗?但我想datetime部分会更复杂。我已经挣扎了整整一周了。有人能帮我提前谢谢吗。

可能是冒号的问题。 替换:

当前日期=datetime.datetime.today().strftime(“%Y\u%m\u%d\u%H:%m:%S”)

与:

当前日期=datetime.datetime.today().strftime(“%Y\u%m\u%d\u%H\u%m\u%S”)


理想情况下,文件名中不应该有冒号或空格。

可能的问题是冒号。 替换:

当前日期=datetime.datetime.today().strftime(“%Y\u%m\u%d\u%H:%m:%S”)

与:

当前日期=datetime.datetime.today().strftime(“%Y\u%m\u%d\u%H\u%m\u%S”)


理想情况下,文件名中不应该有冒号或空格。

谢谢,这解决了问题。只是一个小的后续问题,如果我不想在代码中包含我的本地路径(我可以在docker中重命名它吗?),我还可以使用哪些其他方法?您可以使用相对路径而不是显式路径,例如“/test/test.csv”来使用上面的文件夹,或者“/test/test.csv”来使用路径中当前位置上方的两个文件夹,但是我如何在将来的代码中引用这个新文件名,目前它们是用以前的名称硬编码的,但是由于我附加了当前的日期时间,我不能再硬编码更改的日期时间了。使用open('./test/test.csv',newline='')将csv导入为csvfile:spamreader=csv.reader(csvfile,delimiter='',quotechar='.'))对于spamreader中的行:print(“,”.join(row))谢谢,这解决了问题。只是一个小的后续问题,如果我不想在代码中包含我的本地路径(我可以在docker中重命名它吗?),我还可以使用哪些其他方法?您可以使用相对路径而不是显式路径,例如“/test/test.csv”来使用上面的文件夹,或者“/test/test.csv”来使用路径中当前位置上方的两个文件夹,但是我如何在将来的代码中引用这个新文件名,目前它们是用以前的名称硬编码的,但是由于我附加了当前的日期时间,我不能再硬编码更改的日期时间了。使用open('./test/test.csv',newline='')将csv导入为csvfile:spamreader=csv.reader(csvfile,delimiter='',quotechar='.'))对于spamreader中的行:打印(“,”.join(行))