Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

This question already has an answer here:

I am new to Mathematica, and I find that there may be a lot of ways of doing this. I was wondering which one might be the most general.

I am importing data from .txt files, resulting in a ragged array due to many lines containing parameters and other comments which I want to ignore. I just want to import the numbers, and ignore the comments.

I am using this:

Import["filename.txt", "TSV", "HeaderLines" -> 15]

I have no TrailerLines that I need to skip, however, there are many rows halfway through the data which I would like to remove. These lines all start with #, which makes me think that there is a way to just specify that any line starting with # be skipped.

Thanks a lot in advance to anyone who might be able to help me with this.

share|improve this question

marked as duplicate by Michael E2, Sjoerd C. de Vries, R. M. Aug 21 '13 at 0:44

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Duplicate: 21075. Related: 2655, 29384 – Michael E2 Aug 20 '13 at 14:35
I'd be tempted to use DefineImportStreamMethod to do this, but it's use becomes more complex: you have to open the stream first with the method, and then use Import. But, Import's ability to use streams is undocumented, so your mileage may vary. – rcollyer Aug 20 '13 at 14:38
Oh. Sorry about the duplicate question. I was not searching correctly I think. And thanks a lot to all for the help. – CSR Aug 20 '13 at 14:44
@CSR I didn't find it at first, either. :) – Michael E2 Aug 20 '13 at 18:30
up vote 1 down vote accepted

You could delete them after Import.

DeleteCases[Import["filename.txt", "Data", "HeaderLines" -> 10], {_String, ___}]

or more precisely

DeleteCases[Import["filename.txt", "Data", "HeaderLines" -> 10],
  {_String?(StringMatchQ[#, "#*"] &), ___}]
share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.