我导出了一个包含目录和文件的txt文件,我试图找出目录是否有260个字符或更多。我的部分脚本设置了文件的输入,打开文件,并循环文件。关于在循环中放入if
语句的内容,我陷入了困境。我想我应该使用\
作为分隔符并在其中搜索以查看是否有任何文本> = 260.如何构建此脚本?
C:\ Program Files \ Microsoft Office \ Office14 \ Groove \ ToolData \ groove.net \ GrooveForms4 \ FormsStyles \ GrayCheck
fname = raw_input("Enter filename: ")
fhand = open(fname)
for line in fhand:
# What here?
答案 0 :(得分:1)
您可以使用内置的 len()
函数检查字符串的长度(或基本上任何长度的字符串):
fname = raw_input("Enter filename: ")
fhand = open(fname)
for line in fhand:
if len(line) >= 260:
# Do stuff
else:
# Do other stuff
击> <击> 撞击>
If you would prefer to check if the length of any directory in the path is over 260 characters,您应该使用str.split()
:
for line in fhand:
directories = line.replace('\\', '/').split('/')
for directory in directories:
if len(directory) >= 260:
# Do stuff
else:
# Do other stuff
我还添加了str.replace('\\', '/')
以保持一致性:您现在可以添加/
或\
作为分隔符的路径。
答案 1 :(得分:1)
如果要检查其中一个目录名是否大于260个字符,则应使用str.split。你把反斜杠带进游戏,这就是为什么我指的是这个。然后就是这样的。
path = "C:\Program Files\Microsoft Office\Office14\Groove\ToolData\groove.net\GrooveForms4\FormsStyles\GrayCheck"
directories = path.split("\\")
for directory in directories:
if len(directory) >= 260:
pass # your code goes here
但我认为你真正想要的不是目录名的长度,你正在寻找Windows中具有字符限制的目录路径,对吗?然后就没有必要在游戏中加入反斜杠了。简单的解决方案是检查len(dirname) >= 260
for line in fhand:
if len(line) >= 260:
pass # your code goes here