确定目录名称是否超过260个字符

时间:2015-08-23 23:43:28

标签: python

我导出了一个包含目录和文件的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?

2 个答案:

答案 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