Python 串联错误

Python Concatenation Error

我正在学习 python 并且一直停留在一个教程上,就指南而言,该教程应该有效但无效,我看到过类似的问题,但无法理解它们如何应用于我的代码我正在关注,代码在最后一行的末尾失败。

import os
import time

source = ["'C:\Users\Administrator\myfile\myfile 1'"]

target_dir = ['C:\Users\Administrator\myfile']

target = target_dir + os.sep + \
        time.strftime('%Y%m%d%H%M%S') + '.zip'

can only concatenate list (not "str") to list

我尝试了一些使用 .append 的方法,还通过将 [] 和 () 添加到 + '.zip' 来更改代码,但都无济于事,所以我希望有人能解释为什么失败以及如何失败我纠正一下。

我在 windows

上使用 python 2.7.9

感谢

target_dir 是一个列表,所以在你的例子中你需要做:

target = target_dir[0] + os.sep + \
        time.strftime('%Y%m%dT%H%M%S') + '.zip'

您看到该错误是因为您正在尝试添加列表 (target_list) 并将苹果和橙子串在一起。

target_dir 不应使用括号创建。

target_dir = 'C:\Users\Administrator\myfile'

target = target_dir + os.sep + \
        time.strftime('%Y%m%d%H%M%S') + '.zip'

顺便提一下,请注意反斜杠,因为它们也用于表示字符串中的特殊字符。例如,"c:\new_directory" 将被解释为 "C colon newline W..." 而不是 "C colon backslash N W..."。在这种情况下,您需要使用 "c:\new_directory" 自己转义斜杠,或者使用像 r"c:\new_directory" 这样的原始字符串,或者像 [=] 这样的常规斜杠(如果 OS 允许它作为路径分隔符) 15=]

您应该使用 os.path.join() 以便始终使用正确的特定于平台的目录分隔符

import os
import time

source = "C:\Users\Administrator\myfile\myfile 1"

target_dir = "C:\Users\Administrator\myfile"

target = os.path.join(target_dir, time.strftime('%Y%m%d%H%M%S') + '.zip')