On 05/09/2015 06:31 AM, zljubisic...@gmail.com wrote:

title = title[:232]
title = title.replace(" ", "_").replace("/", "_").replace("!", "_").replace("?", 
"_")\
                     .replace('"', "_").replace(':', "_").replace(',', 
"_").replace('"', '')\
                     .replace('\n', '_').replace('&#39', '')

print(title)

src_file = os.path.join(ROOTDIR, 'src_' + title + '.txt')
dst_file = os.path.join(ROOTDIR, 'des_' + title + '.txt')

print(len(src_file), src_file)
print(len(dst_file), dst_file)

with open(src_file, mode='w', encoding='utf-8') as s_file:
     s_file.write('test')


shutil.move(src_file, dst_file)

It works, but if you change title = title[:232] to title = title[:233], you will get 
"FileNotFoundError: [Errno 2] No such file or directory".
As you can see ROOTDIR contains \U.

No, we can't see what ROOTDIR is, since you read it from the config file. And you don't show us the results of those prints. You don't even show us the full exception, or even the line it fails on.

I doubt that the problem is in the ROODIR value, but of course nothing in your program bothers to check that that directory exists. I expect you either have too many characters total, or the 232th character is a strange one. Or perhaps title has a backslash in it (you took care of forward slash).

While we're at it, if you do have an OS limitation on size, your code is truncating at the wrong point. You need to truncate the title based on the total size of src_file and dst_file, and since the code cannot know the size of ROOTDIR, you need to include that in your figuring.




--
DaveA
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to