将“\”替换为“\\”
Replacing '\' with '\\'
我正在尝试用“\\”替换“\”,但它并没有像我想的那样工作。
我尝试使用 f.replace('\','\')
,但在行继续字符后出现 意外字符。
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.dcap' in file:
files.append(os.path.join(r, file))
for f in files:
print(f)
f.replace( '\' , '\')
os.system("dcapgen.exe f")
基本上我想 运行 给定目录(路径)中所有 .dcap 文件的 .exe 文件。在文件中打印 f 时,它给出的文件路径名称如 C:\Users\folder\a.dcap。但是在给出 os.system("dcapgen.exe f")
时,因为 f 代表 C:\Users\folder\a.dcap 并且 python 无法识别单个反斜杠,它的抛出错误如
跟踪文件:f
失败的。
该文件仍然可以处理,但总帧数可能显示为零,并且可能会为最后一帧生成一条错误消息。
无法打开文件:"f"(没有那个文件或目录)
所以,我想用双反斜杠替换单反斜杠。我尝试使用 os.system("dcapgen.exe C:\Users\folder\a.dcap")
并且它工作正常。
f
是一个变量。要在字符串中使用变量,您需要 string Interpolation
你可以使用 %-formatting
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.dcap' in file:
files.append(os.path.join(r, file))
for f in files:
print(f)
f.replace( '\' , '\')
os.system("dcapgen.exe %s" % f)
我建议以不同的方式解决问题。首先是 built-in 包 glob
,它让您有机会使用星号作为通配符来过滤某种类型的文件。其次,您不必更换文件分隔符。
代码
import glob
import os
files = glob.glob("{}{}*.dcap".format(path, os.filesep)
for f in files:
print(f)
os.system("dcapgen.exe \"{}\"".format(f))
解释
反斜杠字符正在转义所有内容。所以当你写 '\', '\'
时,它实际上解析为这个字符串 ',
加上无效序列 \'
。这是有关行继续错误的原因。
如果你想在另一个字符串中使用一个字符串变量的值,你必须使用一个格式化的字符串。我建议使用 str.format
而不是模运算,因为它在事故方面更安全。在错误消息中,它表示操作系统无法解析文件名 "f"。这并不意味着 f
的值,而是文字字符串 "f" 作为文件名。
我正在尝试用“\\”替换“\”,但它并没有像我想的那样工作。
我尝试使用 f.replace('\','\')
,但在行继续字符后出现 意外字符。
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.dcap' in file:
files.append(os.path.join(r, file))
for f in files:
print(f)
f.replace( '\' , '\')
os.system("dcapgen.exe f")
基本上我想 运行 给定目录(路径)中所有 .dcap 文件的 .exe 文件。在文件中打印 f 时,它给出的文件路径名称如 C:\Users\folder\a.dcap。但是在给出 os.system("dcapgen.exe f")
时,因为 f 代表 C:\Users\folder\a.dcap 并且 python 无法识别单个反斜杠,它的抛出错误如
跟踪文件:f 失败的。 该文件仍然可以处理,但总帧数可能显示为零,并且可能会为最后一帧生成一条错误消息。 无法打开文件:"f"(没有那个文件或目录)
所以,我想用双反斜杠替换单反斜杠。我尝试使用 os.system("dcapgen.exe C:\Users\folder\a.dcap")
并且它工作正常。
f
是一个变量。要在字符串中使用变量,您需要 string Interpolation
你可以使用 %-formatting
files = []
# r=root, d=directories, f = files
for r, d, f in os.walk(path):
for file in f:
if '.dcap' in file:
files.append(os.path.join(r, file))
for f in files:
print(f)
f.replace( '\' , '\')
os.system("dcapgen.exe %s" % f)
我建议以不同的方式解决问题。首先是 built-in 包 glob
,它让您有机会使用星号作为通配符来过滤某种类型的文件。其次,您不必更换文件分隔符。
代码
import glob
import os
files = glob.glob("{}{}*.dcap".format(path, os.filesep)
for f in files:
print(f)
os.system("dcapgen.exe \"{}\"".format(f))
解释
反斜杠字符正在转义所有内容。所以当你写 '\', '\'
时,它实际上解析为这个字符串 ',
加上无效序列 \'
。这是有关行继续错误的原因。
如果你想在另一个字符串中使用一个字符串变量的值,你必须使用一个格式化的字符串。我建议使用 str.format
而不是模运算,因为它在事故方面更安全。在错误消息中,它表示操作系统无法解析文件名 "f"。这并不意味着 f
的值,而是文字字符串 "f" 作为文件名。