2014-11-30 3 views
0

У меня есть текстовый файл, который имеет под содержимымошибка чтения файла построчно в питона

bash-4.1# cat filelist.txt 
js/config/organization.js 
js/config/account.js 
protected/config/settings.php 

Ниже приведен файл питон скрипт. Этот скрипт будет читать файлы из текстового файла и загружать те же файлы в Azure blob. Я мог бы читать строку строки, используя цикл for. но отображает строку с \n. Таким образом, скрипт терпит неудачу. Может ли кто-нибудь рассказать мне, как читать точную строку и заменять там, где это требуется?

bash-4.1# more blob_copy.py 
#! /usr/bin/env python 
import sys 
import os 

from azure.storage import BlobService 
blob_service = BlobService() 

for line in open('file2.txt','r').readlines(): 
    blob_service.put_block_blob_from_path('test', line, line) 

Когда я попытался запустить скрипт, я получил следующую ошибку.

bash-4.1# python blob_copy.py 
Traceback (most recent call last): 
    File "blob_copy.py", line 12, in <module> 
    blob_service.put_block_blob_from_path('test', line, line) 
OSError: [Errno 2] No such file or directory: 'js/wheelhouse/organization.js\n' 
+0

У вас действительно нет всех этих '\ n' s в ваших файлах, не так ли? Я удалю их из вашего сообщения. – 5gon12eder

+0

Да. вы правы :) Спасибо, чувак .. \ n есть только на последней строке (в сообщении об ошибке) – Ela

+0

Упс, удалено слишком много. – 5gon12eder

ответ

0

Проблема, кажется, что, как вы читаете строки, они по-прежнему содержат символ завершающего перевода строки (\n), что имена файлов не. Решение состоит в том, чтобы strip() линии:

with open('file2.txt','r') as istr: 
    for line in istr: 
     line = line.strip() 
     # Your code here... 
+0

это работает .. Спасибо за вашу быструю помощь .. – Ela

0

Вы можете сделать что-то вроде этого:

import sys, os 
list = open('file2.txt','r').read().splitlines() 
for i in list: 
    print i 

Он возвращает строки без перевода строки символов (\ п).

+0

Идеальный :) Это работает. Спасибо большое чувак :) – Ela

+0

@smartboy Тогда почему вы приняли другой ответ lol? В любом случае, я рад, что это помогает ... –

+0

Я попробовал свой ответ перед вашим ... надеюсь, что вы не возражаете :) Еще раз спасибо .. – Ela